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:
    - stderr
    - stdout
    - process::Command::new
    - RedisServer::arg
    - arg
    - spawn
    - wait
    - process::Stdio::piped
    - expect
    linkageType: ''
    returnType: void
    signature: 'fn make_key<S: AsRef<std::ffi::OsStr>>(name: S, size: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/utils.rs: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:
    - take
    - '&TempDir::path'
    - stderr
    - stdout
    - process::Command::new
    - RedisServer::arg
    - Poll::expect
    - stdin
    - make_key
    - arg
    - spawn
    - wait
    - process::Stdio::piped
    - expect
    - fs::write
    - join
    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:
    - into
    - set_reuse_address
    - 0.0.1:0".parse::<SocketAddr>
    - bind
    - listen
    - unwrap
    - RedisServer::unwrap
    - Socket::new
    - 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:
    - port
    - unwrap
    - TcpListener::local_addr
    - get_listener_on_free_port
    linkageType: ''
    returnType: u16
    signature: pub fn get_random_available_port() -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: env::var
      Src: /src/redis-rs/redis-test/src/server.rs:10,1
    - Dst: String::unwrap_or_default
      Src: /src/redis-rs/redis-test/src/server.rs:10,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: use_protocol
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - 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:
    - use_protocol
    - RedisConnectionInfo::default
    - Self::set_protocol
    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:
    - String::ok
    - as_ref
    - env::var
    - map
    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:
    - std::fs::read_to_string
    - ok
    - clone
    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:
    - redis::ConnectionAddr::Tcp
    - rand::random::<(u64, u64)>
    - '&str::to_string'
    - PathBuf::from
    - ServerType::get_intended
    - redis::ConnectionAddr::Unix
    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
    - Cmd::spawn
    - unwrap_or_else
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - utils::get_random_available_port
    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
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - Cmd::spawn
    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: process::Command::new
      Src: /src/redis-rs/redis-test/src/server.rs:153,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:156,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:163,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:163,1
    - Dst: env::var
      Src: /src/redis-rs/redis-test/src/server.rs:165,1
    - Dst: String::expect
      Src: /src/redis-rs/redis-test/src/server.rs:165,1
    - Dst: RedisServer::stdout
      Src: /src/redis-rs/redis-test/src/server.rs:172,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/server.rs:173,1
    - Dst: stderr
      Src: /src/redis-rs/redis-test/src/server.rs:172,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/server.rs:174,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/server.rs:175,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/server.rs:175,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/server.rs:175,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/server.rs:175,1
    - Dst: Self::log_file
      Src: /src/redis-rs/redis-test/src/server.rs:179,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:180,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:180,1
    - Dst: PathBuf::clone
      Src: /src/redis-rs/redis-test/src/server.rs:180,1
    - Dst: get_major_version
      Src: /src/redis-rs/redis-test/src/server.rs:181,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:182,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:182,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:186,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:186,1
    - Dst: to_string
      Src: /src/redis-rs/redis-test/src/server.rs:188,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:186,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:186,1
    - Dst: spawner
      Src: /src/redis-rs/redis-test/src/server.rs:193,1
    - Dst: Option<TlsFilePaths>::unwrap_or_else
      Src: /src/redis-rs/redis-test/src/server.rs:201,1
    - Dst: utils::build_keys_and_certs_for_tls
      Src: /src/redis-rs/redis-test/src/server.rs:201,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: TcpListener::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: 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: 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: 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: 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: 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: clone
      Src: /src/redis-rs/redis-test/src/server.rs:226,1
    - Dst: spawner
      Src: /src/redis-rs/redis-test/src/server.rs:233,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/server.rs:237,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:241,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:241,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:241,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:241,1
    - Dst: spawner
      Src: /src/redis-rs/redis-test/src/server.rs:247,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 129
    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: 256
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 256
    functionName: RedisServer::new_with_addr_tls_modules_and_spawner
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 2
    functionsReached:
    - Option<TlsFilePaths>::unwrap_or_else
    - RedisServer::arg
    - process::Stdio::piped
    - tempfile::Builder::new
    - RedisResult::prefix
    - RedisServer::stdout
    - String::expect
    - Self::log_file
    - spawner
    - TcpListener::to_string
    - arg
    - expect
    - get_major_version
    - PathBuf::clone
    - tempdir
    - to_string
    - stderr
    - process::Command::new
    - Some
    - env::var
    - clone
    - utils::build_keys_and_certs_for_tls
    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: 260
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 260
    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:264,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/server.rs:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 268
    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:271,1
    - Dst: '&redis::ConnectionAddr::clone'
      Src: /src/redis-rs/redis-test/src/server.rs:271,1
    - Dst: Self::into_connection_info
      Src: /src/redis-rs/redis-test/src/server.rs:271,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:271,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis-test/src/server.rs:271,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis-test/src/server.rs:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 9
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: RedisServer::connection_info
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - RedisServer::client_addr
    - Self::into_connection_info
    - RedisResult::unwrap
    - '&redis::ConnectionAddr::clone'
    - set_redis_settings
    - redis_settings
    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:279,1
    - Dst: wait
      Src: /src/redis-rs/redis-test/src/server.rs:280,1
    - Dst: RedisServer::client_addr
      Src: /src/redis-rs/redis-test/src/server.rs:281,1
    - Dst: fs::remove_file
      Src: /src/redis-rs/redis-test/src/server.rs:282,1
    - Dst: ok
      Src: /src/redis-rs/redis-test/src/server.rs:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 284
    functionName: RedisServer::stop
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 1
    functionsReached:
    - fs::remove_file
    - RedisServer::client_addr
    - ok
    - 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:287,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/server.rs:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tempdir
    argTypes:
    - '&TempDir'
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: RedisServer::log_file
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - '&TempDir::path'
    - join
    linkageType: ''
    returnType: PathBuf
    signature: 'pub fn log_file(tempdir: &TempDir) -> PathBuf'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from_utf8
      Src: /src/redis-rs/redis-test/src/server.rs:292,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/server.rs:293,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:293,1
    - Dst: output
      Src: /src/redis-rs/redis-test/src/server.rs:293,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:293,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:292,1
    - Dst: split_once
      Src: /src/redis-rs/redis-test/src/server.rs:300,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:300,1
    - Dst: split_once
      Src: /src/redis-rs/redis-test/src/server.rs:301,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:301,1
    - Dst: parse
      Src: /src/redis-rs/redis-test/src/server.rs:302,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 303
    functionName: get_major_version
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 1
    functionsReached:
    - String::from_utf8
    - process::Command::new
    - RedisServer::arg
    - unwrap
    - split_once
    - output
    - parse
    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:
    - ConnectionAddr::Tcp
    - RedisServer::get_addr
    - String::from
    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: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:43,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:43,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:44,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:45,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:45,1
    - Dst: Cmd::current_dir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:47,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:47,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/sentinel.rs:48,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 4
    argNames:
    - port
    - dir
    - tlspaths
    - modules
    argTypes:
    - u16
    - '&TempDir'
    - '&TlsFilePaths'
    - '&[Module]'
    constantsTouched: []
    func_position:
      end: 51
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 51
    functionName: spawn_master_server
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - get_addr
    - '&mut Cmd::arg'
    - '&TempDir::path'
    - Cmd::spawn
    - Some
    - Cmd::current_dir
    - unwrap
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - '&TlsFilePaths::clone'
    - Cmd::arg
    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:60,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/sentinel.rs:60,1
    - Dst: File::create
      Src: /src/redis-rs/redis-test/src/sentinel.rs:61,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:61,1
    - Dst: RedisServer::new_with_addr_tls_modules_and_spawner
      Src: /src/redis-rs/redis-test/src/sentinel.rs:63,1
    - Dst: get_addr
      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: Some
      Src: /src/redis-rs/redis-test/src/sentinel.rs:66,1
    - Dst: '&TlsFilePaths::clone'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:66,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:70,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:70,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:70,1
    - Dst: u16::to_string
      Src: /src/redis-rs/redis-test/src/sentinel.rs:72,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:73,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:74,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:74,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:76,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:76,1
    - Dst: Cmd::current_dir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:77,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:77,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/sentinel.rs:78,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 5
    argNames:
    - port
    - master_port
    - dir
    - tlspaths
    - modules
    argTypes:
    - u16
    - u16
    - '&TempDir'
    - '&TlsFilePaths'
    - '&[Module]'
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: spawn_replica_server
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - get_addr
    - '&mut Cmd::arg'
    - '&TempDir::path'
    - Cmd::spawn
    - File::create
    - Some
    - arg
    - Cmd::current_dir
    - unwrap
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - '&TlsFilePaths::clone'
    - Cmd::arg
    - u16::to_string
    - join
    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:90,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/sentinel.rs:90,1
    - Dst: File::create
      Src: /src/redis-rs/redis-test/src/sentinel.rs:91,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:91,1
    - Dst: '&[u16]::iter'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:92,1
    - Dst: enumerate
      Src: /src/redis-rs/redis-test/src/sentinel.rs:92,1
    - Dst: PathBuf::write_all
      Src: /src/redis-rs/redis-test/src/sentinel.rs:93,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis-test/src/sentinel.rs:94,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:93,1
    - Dst: PathBuf::flush
      Src: /src/redis-rs/redis-test/src/sentinel.rs:98,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:98,1
    - Dst: RedisServer::new_with_addr_tls_modules_and_spawner
      Src: /src/redis-rs/redis-test/src/sentinel.rs:100,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:101,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/sentinel.rs:102,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/sentinel.rs:103,1
    - Dst: '&TlsFilePaths::clone'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:103,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:107,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:108,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:108,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:109,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:110,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:110,1
    - Dst: Cmd::current_dir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:112,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:112,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/sentinel.rs:113,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 59
    argCount: 5
    argNames:
    - port
    - master_ports
    - dir
    - tlspaths
    - modules
    argTypes:
    - u16
    - '&[u16]'
    - '&TempDir'
    - '&TlsFilePaths'
    - '&[Module]'
    constantsTouched: []
    func_position:
      end: 116
      start: 83
    functionDepth: 5
    functionLinenumber: 83
    functionLinenumberEnd: 116
    functionName: spawn_sentinel_server
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - get_addr
    - '&mut Cmd::arg'
    - '&TempDir::path'
    - as_bytes
    - Cmd::spawn
    - Cmd::arg
    - File::create
    - Some
    - Cmd::current_dir
    - Poll::unwrap
    - unwrap
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - '&TlsFilePaths::clone'
    - '&[u16]::iter'
    - PathBuf::flush
    - PathBuf::write_all
    - enumerate
    - join
    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:123,1
    - Dst: get_connection
      Src: /src/redis-rs/redis-test/src/sentinel.rs:127,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis-test/src/sentinel.rs:129,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:129,1
    - Dst: String::from_redis_value_ref
      Src: /src/redis-rs/redis-test/src/sentinel.rs:130,1
    - Dst: ConnectionAddr::first
      Src: /src/redis-rs/redis-test/src/sentinel.rs:130,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:130,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:130,1
    - Dst: starts_with
      Src: /src/redis-rs/redis-test/src/sentinel.rs:131,1
    - Dst: Ok
      Src: /src/redis-rs/redis-test/src/sentinel.rs:132,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/sentinel.rs:146,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/sentinel.rs:146,1
    - Dst: Err
      Src: /src/redis-rs/redis-test/src/sentinel.rs:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 1
    argNames:
    - get_client_fn
    argTypes:
    - impl FnMut() -> RedisResult<Client>
    constantsTouched: []
    func_position:
      end: 150
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 150
    functionName: wait_for_master_server
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - get_connection
    - Err
    - redis::cmd
    - Duration::from_millis
    - std::thread::sleep
    - ConnectionAddr::first
    - redis::Cmd::query
    - starts_with
    - unwrap
    - RedisResult::unwrap
    - String::from_redis_value_ref
    - Ok
    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:155,1
    - Dst: get_connection
      Src: /src/redis-rs/redis-test/src/sentinel.rs:159,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis-test/src/sentinel.rs:161,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:161,1
    - Dst: String::from_redis_value_ref
      Src: /src/redis-rs/redis-test/src/sentinel.rs:162,1
    - Dst: ConnectionAddr::first
      Src: /src/redis-rs/redis-test/src/sentinel.rs:162,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:162,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:162,1
    - Dst: String::from_redis_value_ref
      Src: /src/redis-rs/redis-test/src/sentinel.rs:163,1
    - Dst: ConnectionAddr::get
      Src: /src/redis-rs/redis-test/src/sentinel.rs:163,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:163,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:163,1
    - Dst: starts_with
      Src: /src/redis-rs/redis-test/src/sentinel.rs:164,1
    - Dst: Ok
      Src: /src/redis-rs/redis-test/src/sentinel.rs:165,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: 5
    EdgeCount: 5
    ICount: 43
    argCount: 1
    argNames:
    - get_client_fn
    argTypes:
    - impl FnMut() -> RedisResult<Client>
    constantsTouched: []
    func_position:
      end: 183
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 183
    functionName: wait_for_replica
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - get_connection
    - ConnectionAddr::get
    - redis::cmd
    - Err
    - Duration::from_millis
    - std::thread::sleep
    - ConnectionAddr::first
    - redis::Cmd::query
    - starts_with
    - unwrap
    - RedisResult::unwrap
    - String::from_redis_value_ref
    - Ok
    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:
    - connection_info
    - impl Iterator::len
    - redis::Client::open
    - clone
    - wait_for_master_server
    - ConnectionAddr::is_err
    - wait_for_replica
    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:
    - '{

      server::build_keys_and_certs_for_tls'
    - unwrap
    - spawn_replica_server
    - tempfile::Builder::new
    - RedisResult::prefix
    - impl Iterator::push
    - RedisServer::into_iter
    - expect
    - spawn_master_server
    - RedisServer::insert
    - RedisServer::pop
    - get_random_available_port
    - spawn_sentinel_server
    - push
    - tempdir
    - std::iter::Chain::collect
    - RedisServer::len
    - wait_for_replicas_to_sync
    - std::collections::HashSet::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::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:52,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis-test/src/lib.rs:52,1
    - Dst: to_vec
      Src: /src/redis-rs/redis-test/src/lib.rs:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: String::into_redis_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - String::as_bytes
    - Value::BulkString
    - to_vec
    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:58,1
    - Dst: '&str::as_bytes'
      Src: /src/redis-rs/redis-test/src/lib.rs:58,1
    - Dst: to_vec
      Src: /src/redis-rs/redis-test/src/lib.rs:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: '&str::into_redis_value'
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&str::as_bytes'
    - Value::BulkString
    - to_vec
    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:65,1
    - Dst: bytes::Bytes::to_vec
      Src: /src/redis-rs/redis-test/src/lib.rs:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    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::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Vec::into_redis_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    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: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    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::Int
      Src: /src/redis-rs/redis-test/src/lib.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: i64::into_redis_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::Int
    linkageType: ''
    returnType: Value
    signature: fn into_redis_value(self) -> Value
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis-test/src/lib.rs:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 97
    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:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    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:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    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:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 115
    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:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 121
    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:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 127
    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:145,1
    - Dst: map
      Src: /src/redis-rs/redis-test/src/lib.rs:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - cmd
    - response
    argTypes:
    - C
    - Result<V, RedisError>
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 148
    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:158,1
    - Dst: Result<Vec<V>, RedisError>::map
      Src: /src/redis-rs/redis-test/src/lib.rs:159,1
    - Dst: into_iter
      Src: /src/redis-rs/redis-test/src/lib.rs:159,1
    - Dst: map
      Src: /src/redis-rs/redis-test/src/lib.rs:159,1
    - Dst: into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:159,1
    - Dst: collect
      Src: /src/redis-rs/redis-test/src/lib.rs:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - cmd
    - responses
    argTypes:
    - C
    - Result<Vec<V>, RedisError>
    constantsTouched: []
    func_position:
      end: 161
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 161
    functionName: MockCmd::with_values
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Cmd::into_redis_cmd_bytes
    - collect
    - map
    - Result<Vec<V>, RedisError>::map
    - into_redis_value
    - into_iter
    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:179,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis-test/src/lib.rs:179,1
    - Dst: VecDeque::from_iter
      Src: /src/redis-rs/redis-test/src/lib.rs:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - commands
    argTypes:
    - I
    constantsTouched: []
    func_position:
      end: 182
      start: 174
    functionDepth: 7
    functionLinenumber: 174
    functionLinenumberEnd: 182
    functionName: MockRedisConnection::new
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Mutex::new
    - Arc::new
    - VecDeque::from_iter
    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: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    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:194,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:194,1
    - Dst: Arc::strong_count
      Src: /src/redis-rs/redis-test/src/lib.rs:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: MockRedisConnection::drop
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - lock
    - Arc::strong_count
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/redis-rs/redis-test/src/lib.rs:204,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:204,1
    - Dst: is_empty
      Src: /src/redis-rs/redis-test/src/lib.rs:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: MockRedisConnection::is_empty
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - lock
    - is_empty
    linkageType: ''
    returnType: bool
    signature: pub fn is_empty(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis-test/src/lib.rs:292,1
    - Dst: <MockRedisConnection as ConnectionLike>::req_packed_command
      Src: /src/redis-rs/redis-test/src/lib.rs:293,1
    - Dst: as_slice
      Src: /src/redis-rs/redis-test/src/lib.rs:295,1
    - Dst: future::ready
      Src: /src/redis-rs/redis-test/src/lib.rs:297,1
    - Dst: Poll::boxed
      Src: /src/redis-rs/redis-test/src/lib.rs:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 298
    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
    - future::ready
    - as_slice
    - 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:306,1
    - Dst: <MockRedisConnection as ConnectionLike>::req_packed_commands
      Src: /src/redis-rs/redis-test/src/lib.rs:307,1
    - Dst: as_slice
      Src: /src/redis-rs/redis-test/src/lib.rs:309,1
    - Dst: future::ready
      Src: /src/redis-rs/redis-test/src/lib.rs:313,1
    - Dst: Poll::boxed
      Src: /src/redis-rs/redis-test/src/lib.rs:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&''a Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 314
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 314
    functionName: MockRedisConnection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Poll::boxed
    - <MockRedisConnection as ConnectionLike>::req_packed_commands
    - Cmd::get_packed_pipeline
    - future::ready
    - as_slice
    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: 318
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 318
    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: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    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: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    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:
    - Dst: MockRedisConnection::new
      Src: /src/redis-rs/redis-test/src/lib.rs:328,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:328,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:336,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:336,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:336,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:336,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:336,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:339,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:339,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:339,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:339,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 327
    functionDepth: 8
    functionLinenumber: 327
    functionLinenumberEnd: 344
    functionName: tests::sync_basic_test
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - Self::assert_all_commands_consumed
    - MockRedisConnection::new
    - exec
    - RedisResult::unwrap
    - Cmd::arg
    - cmd
    linkageType: ''
    returnType: void
    signature: fn sync_basic_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockRedisConnection::new
      Src: /src/redis-rs/redis-test/src/lib.rs:349,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:349,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:357,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:357,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:357,1
    - Dst: exec_async
      Src: /src/redis-rs/redis-test/src/lib.rs:357,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:357,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:363,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:363,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis-test/src/lib.rs:363,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:366,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:366,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:366,1
    - Dst: exec_async
      Src: /src/redis-rs/redis-test/src/lib.rs:366,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:366,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:372,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:372,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis-test/src/lib.rs:372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 374
      start: 348
    functionDepth: 8
    functionLinenumber: 348
    functionLinenumberEnd: 374
    functionName: tests::async_basic_test
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - Self::assert_all_commands_consumed
    - MockRedisConnection::new
    - exec_async
    - unwrap
    - Cmd::arg
    - cmd
    - '&mut Cmd::query_async'
    linkageType: ''
    returnType: void
    signature: async fn async_basic_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockRedisConnection::new
      Src: /src/redis-rs/redis-test/src/lib.rs:378,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:378,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:384,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:384,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:384,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:384,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:384,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:387,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:387,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:387,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:387,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis-test/src/lib.rs:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 377
    functionDepth: 8
    functionLinenumber: 377
    functionLinenumberEnd: 394
    functionName: tests::errors_for_unexpected_commands
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - Self::assert_all_commands_consumed
    - MockRedisConnection::new
    - exec
    - RedisResult::unwrap
    - Cmd::arg
    - RedisResult::unwrap_err
    - cmd
    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:398,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:398,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:405,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:405,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:405,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:405,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:405,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:406,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:406,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:406,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:406,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis-test/src/lib.rs:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 397
    functionDepth: 8
    functionLinenumber: 397
    functionLinenumberEnd: 413
    functionName: tests::errors_for_mismatched_commands
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - Self::assert_all_commands_consumed
    - MockRedisConnection::new
    - exec
    - RedisResult::unwrap
    - Cmd::arg
    - RedisResult::unwrap_err
    - cmd
    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:417,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:417,1
    - Dst: pipe
      Src: /src/redis-rs/redis-test/src/lib.rs:423,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:423,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:423,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis-test/src/lib.rs:423,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:423,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis-test/src/lib.rs:423,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/lib.rs:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 431
      start: 416
    functionDepth: 8
    functionLinenumber: 416
    functionLinenumberEnd: 431
    functionName: tests::pipeline_basic_test
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::cmd'
    - '&mut Cmd::query'
    - redis::Cmd::arg
    - pipe
    - Self::assert_all_commands_consumed
    - Pipeline::cmd
    - MockRedisConnection::new
    - expect
    linkageType: ''
    returnType: void
    signature: fn pipeline_basic_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockRedisConnection::new
      Src: /src/redis-rs/redis-test/src/lib.rs:435,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:435,1
    - Dst: pipe
      Src: /src/redis-rs/redis-test/src/lib.rs:446,1
    - Dst: Pipeline::atomic
      Src: /src/redis-rs/redis-test/src/lib.rs:446,1
    - Dst: '&mut Pipeline::cmd'
      Src: /src/redis-rs/redis-test/src/lib.rs:446,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:446,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis-test/src/lib.rs:446,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:446,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis-test/src/lib.rs:446,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/lib.rs:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 434
    functionDepth: 8
    functionLinenumber: 434
    functionLinenumberEnd: 455
    functionName: tests::pipeline_atomic_test
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::cmd'
    - '&mut Cmd::query'
    - redis::Cmd::arg
    - pipe
    - '&mut Pipeline::cmd'
    - Self::assert_all_commands_consumed
    - MockRedisConnection::new
    - Pipeline::atomic
    - expect
    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: 1
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: ClusterType::get_intended
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - String::ok
    - as_ref
    - env::var
    - map
    linkageType: ''
    returnType: 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: 2
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: ClusterType::build_addr
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - redis::ConnectionAddr::Tcp
    - '&str::into'
    - ClusterType::get_intended
    linkageType: ''
    returnType: redis::ConnectionAddr
    signature: 'fn build_addr(port: u16) -> redis::ConnectionAddr'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionAddr::parse
      Src: /src/redis-rs/redis-test/src/cluster.rs: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:
    - RedisServer::expect
    - into
    - socket2::Socket::new
    - connect
    - socket2::Domain::for_address
    - is_ok
    - expect
    - ConnectionAddr::parse
    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: 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:176,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:176,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:178,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:178,1
    - Dst: Cmd::current_dir
      Src: /src/redis-rs/redis-test/src/cluster.rs:181,1
    - Dst: path
      Src: /src/redis-rs/redis-test/src/cluster.rs:181,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/cluster.rs:182,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/cluster.rs:183,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:183,1
    - Dst: try_wait
      Src: /src/redis-rs/redis-test/src/cluster.rs:190,1
    - Dst: RedisServer::log_file_contents
      Src: /src/redis-rs/redis-test/src/cluster.rs:192,1
    - Dst: Err
      Src: /src/redis-rs/redis-test/src/cluster.rs:196,1
    - Dst: RedisServer::log_file_contents
      Src: /src/redis-rs/redis-test/src/cluster.rs:204,1
    - Dst: Err
      Src: /src/redis-rs/redis-test/src/cluster.rs:205,1
    - Dst: port_in_use
      Src: /src/redis-rs/redis-test/src/cluster.rs:209,1
    - Dst: to_string
      Src: /src/redis-rs/redis-test/src/cluster.rs:209,1
    - Dst: Ok
      Src: /src/redis-rs/redis-test/src/cluster.rs:210,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/cluster.rs:213,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/cluster.rs:213,1
    - Dst: into_iter
      Src: /src/redis-rs/redis-test/src/cluster.rs:223,1
    - Dst: map
      Src: /src/redis-rs/redis-test/src/cluster.rs:223,1
    - Dst: get_random_available_port
      Src: /src/redis-rs/redis-test/src/cluster.rs:230,1
    - Dst: RedisServer::contains
      Src: /src/redis-rs/redis-test/src/cluster.rs:231,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis-test/src/cluster.rs:234,1
    - Dst: make_server
      Src: /src/redis-rs/redis-test/src/cluster.rs:238,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/cluster.rs:239,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/cluster.rs:239,1
    - Dst: verify_server
      Src: /src/redis-rs/redis-test/src/cluster.rs:241,1
    - Dst: impl Iterator::push
      Src: /src/redis-rs/redis-test/src/cluster.rs:244,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis-test/src/cluster.rs:244,1
    - Dst: collect
      Src: /src/redis-rs/redis-test/src/cluster.rs:223,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/cluster.rs:254,1
    - Dst: Cmd::stdout
      Src: /src/redis-rs/redis-test/src/cluster.rs:255,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/cluster.rs:255,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:255,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:255,1
    - Dst: args
      Src: /src/redis-rs/redis-test/src/cluster.rs:255,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:260,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:260,1
    - Dst: to_string
      Src: /src/redis-rs/redis-test/src/cluster.rs:260,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:262,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: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:277,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:278,1
    - Dst: None::is_some
      Src: /src/redis-rs/redis-test/src/cluster.rs:280,1
    - Dst: None::as_ref
      Src: /src/redis-rs/redis-test/src/cluster.rs:281,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:281,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: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:282,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:284,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:284,1
    - Dst: Cmd::output
      Src: /src/redis-rs/redis-test/src/cluster.rs:290,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:290,1
    - Dst: success
      Src: /src/redis-rs/redis-test/src/cluster.rs:291,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/cluster.rs:299,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/cluster.rs:299,1
    - Dst: Result::wait_for_replicas
      Src: /src/redis-rs/redis-test/src/cluster.rs:310,1
    - Dst: wait_for_status_ok
      Src: /src/redis-rs/redis-test/src/cluster.rs:313,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 292
    argCount: 1
    argNames:
    - configuration
    argTypes:
    - RedisClusterConfiguration
    constantsTouched: []
    func_position:
      end: 315
      start: 107
    functionDepth: 7
    functionLinenumber: 107
    functionLinenumberEnd: 315
    functionName: RedisCluster::new
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - Cmd::spawn
    - std::iter::Chain::map
    - std::thread::sleep
    - map
    - verify_server
    - ClusterType::build_addr
    - unwrap
    - Cmd::stdout
    - tempfile::Builder::new
    - Cmd::arg
    - try_wait
    - RedisResult::prefix
    - process::Stdio::piped
    - None::is_some
    - join
    - Err
    - None::clone
    - impl Iterator::push
    - args
    - Poll::expect
    - arg
    - RedisServer::contains
    - '{

      server::build_keys_and_certs_for_tls_ext'
    - expect
    - make_server
    - into_iter
    - RedisServer::log_file_contents
    - RedisServer::insert
    - std::fs::write
    - Vec::is_empty
    - wait_for_status_ok
    - Cmd::current_dir
    - success
    - get_random_available_port
    - push
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - tempdir
    - to_string
    - path
    - ClusterType::get_intended
    - Vec::into_iter
    - '&mut Cmd::arg'
    - Ok
    - ConnectionAddr::clone
    - Cmd::output
    - collect
    - Duration::from_millis
    - process::Command::new
    - None::as_ref
    - Result::wait_for_replicas
    - Some
    - port_in_use
    - std::collections::HashSet::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:319,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis-test/src/cluster.rs:325,1
    - Dst: RedisServer::connection_info
      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: get_connection
      Src: /src/redis-rs/redis-test/src/cluster.rs:327,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:327,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis-test/src/cluster.rs:331,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:331,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis-test/src/cluster.rs:331,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:331,1
    - Dst: redis::from_redis_value
      Src: /src/redis-rs/redis-test/src/cluster.rs:332,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:332,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis-test/src/cluster.rs:336,1
    - Dst: all
      Src: /src/redis-rs/redis-test/src/cluster.rs:336,1
    - Dst: u16::len
      Src: /src/redis-rs/redis-test/src/cluster.rs:336,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/cluster.rs:340,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/cluster.rs:340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 1
    argNames:
    - replicas
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 345
      start: 317
    functionDepth: 10
    functionLinenumber: 317
    functionLinenumberEnd: 345
    functionName: RedisCluster::wait_for_replicas
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - get_connection
    - redis::cmd
    - '&mut Cmd::query'
    - RedisServer::connection_info
    - redis::Cmd::arg
    - Duration::from_millis
    - redis::Client::open
    - RedisResult::iter
    - u16::len
    - std::thread::sleep
    - unwrap
    - RedisResult::unwrap
    - redis::from_redis_value
    - all
    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:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 351
    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:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 355
    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:360,1
    - Dst: std::fs::read_to_string
      Src: /src/redis-rs/redis-test/src/cluster.rs:364,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/cluster.rs:364,1
    - Dst: Option::contains
      Src: /src/redis-rs/redis-test/src/cluster.rs:366,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/cluster.rs:369,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/cluster.rs:369,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - '&RedisCluster'
    constantsTouched: []
    func_position:
      end: 373
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 373
    functionName: wait_for_status_ok
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 1
    functionsReached:
    - RedisServer::log_file
    - std::fs::read_to_string
    - Duration::from_millis
    - Option::contains
    - std::thread::sleep
    - expect
    linkageType: ''
    returnType: void
    signature: 'fn wait_for_status_ok(cluster: &RedisCluster)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisCluster::stop
      Src: /src/redis-rs/redis-test/src/cluster.rs:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 5
    functionLinenumber: 376
    functionLinenumberEnd: 378
    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
    - syn::Error::new_spanned
    - span
    - last
    - to_compile_error
    - clone
    - is_empty
    - syn::Ident::new
    - len
    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:386,1
    - Dst: filter
      Src: /src/redis-rs/redis/src/sentinel.rs:386,1
    - Dst: trim_start
      Src: /src/redis-rs/redis/src/sentinel.rs:388,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/src/sentinel.rs:388,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/sentinel.rs:386,1
    - Dst: split_once
      Src: /src/redis-rs/redis/src/sentinel.rs:389,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:386,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/sentinel.rs:390,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/sentinel.rs:390,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - value
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 393
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 393
    functionName: parse_replication_info
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - filter
    - collect
    - map
    - starts_with
    - trim_start
    - split_once
    - to_string
    - impl combine::Parser::split
    - filter_map
    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:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - replication_info
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 27
    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:30,1
    - Dst: '&ConnectionInfo::addr'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - replication_info
    - expected_master
    argTypes:
    - String
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: assert_replica_role_and_master_addr
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - '&ConnectionInfo::addr'
    - parse_replication_info
    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:54,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:54,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:54,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:54,1
    - Dst: assert_is_master_role
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: assert_is_connection_to_master
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Cmd::query'
    - redis::Cmd::arg
    - assert_is_master_role
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'fn assert_is_connection_to_master(conn: &mut Connection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:59,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:59,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:59,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:59,1
    - Dst: assert_replica_role_and_master_addr
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:60,1
    - Dst: '&Client::get_connection_info'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - master_client
    argTypes:
    - '&mut Connection'
    - '&Client'
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 6
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: assert_connection_is_replica_of_correct_master
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Cmd::query'
    - redis::Cmd::arg
    - '&Client::get_connection_info'
    - unwrap
    - assert_replica_role_and_master_addr
    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:75,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:76,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:75,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:78,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:78,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:81,1
    - Dst: get_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:81,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:81,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:81,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:83,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: 87
      start: 65
    functionDepth: 5
    functionLinenumber: 65
    functionLinenumberEnd: 87
    functionName: connect_to_all_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - assert_connection_is_replica_of_correct_master
    - Some
    - '&redis::sentinel::Sentinel::replica_rotate_for'
    - clone
    - unwrap
    - get_connection_info
    - push
    - RedisResult::unwrap
    - addr
    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:98,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:99,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:98,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:101,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:101,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:105,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: 107
      start: 89
    functionDepth: 7
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: assert_connect_to_known_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - assert_connection_is_replica_of_correct_master
    - Some
    - '&redis::sentinel::Sentinel::replica_rotate_for'
    - 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:113,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:114,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:115,1
    - Dst: '&redis::sentinel::Sentinel::get_replica_clients'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:116,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:117,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: test_get_replica_clients_success
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - RedisResult::unwrap
    - '&redis::sentinel::Sentinel::get_replica_clients'
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::new
    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:125,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:126,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:127,1
    - Dst: '&redis::sentinel::Sentinel::get_replica_clients'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:129,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:130,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 140
    functionName: test_get_replica_clients_invalid_master_name
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - '&redis::sentinel::Sentinel::get_replica_clients'
    - RedisResult::unwrap_err
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::new
    linkageType: ''
    returnType: void
    signature: fn test_get_replica_clients_invalid_master_name()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:146,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:147,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:148,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:149,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:150,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:149,1
    - Dst: '&redis::sentinel::Sentinel::get_replica_clients'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:153,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:154,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:153,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:158,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:158,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 143
    functionDepth: 7
    functionLinenumber: 143
    functionLinenumberEnd: 161
    functionName: test_get_replica_clients_report_correct_master
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - assert_connection_is_replica_of_correct_master
    - '&redis::sentinel::Sentinel::master_for'
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - unwrap
    - RedisResult::unwrap
    - '&redis::sentinel::Sentinel::get_replica_clients'
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::new
    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:168,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:169,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:170,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:170,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:171,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:171,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:171,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:171,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:176,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:176,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:176,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:176,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:176,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:176,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:176,1
    - Dst: stop
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:184,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:186,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:186,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:188,1
    - Dst: '&redis::sentinel::Sentinel::get_replica_clients'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:189,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:190,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 164
    functionDepth: 4
    functionLinenumber: 164
    functionLinenumberEnd: 198
    functionName: test_get_replica_clients_with_one_replica_down
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - Client::open
    - std::thread::sleep
    - TestSentinelContext::sentinel_node_connection_info
    - unwrap
    - RedisResult::unwrap
    - TestSentinelContext::new
    - std::time::Duration::from_millis
    - redis::cmd
    - arg
    - '&redis::sentinel::Sentinel::get_replica_clients'
    - '&mut Cmd::arg'
    - TestSentinelContext::sentinels_connection_info
    - redis::Cmd::arg
    - stop
    - RedisResult::expect
    - "arg(\"set\")\n        .arg(master_name)\n        .arg(\"down-after-milliseconds\"\
      )\n        .arg(\"500\")\n        .query::<()>"
    - Some
    - clone
    - TestSentinelContext::sentinel_mut
    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:204,1
    - Dst: Result::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:205,1
    - Dst: Result::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:206,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:208,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:209,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:208,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:211,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:211,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:213,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:213,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:213,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:213,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:218,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:218,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:218,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:218,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:218,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:218,1
    - Dst: '&redis::sentinel::Sentinel::replica_rotate_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:227,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:228,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:227,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:230,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:230,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:231,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:231,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:231,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:231,1
    - Dst: query
      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::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:239,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:240,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:239,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:242,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:242,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 245
    functionName: test_sentinel_role_no_permission
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - Result::sentinel_mut
    - get_connection
    - query
    - redis::cmd
    - '&redis::sentinel::Sentinel::master_for'
    - redis::Cmd::arg
    - '&mut Cmd::query'
    - Some
    - Result::sentinel_node_connection_info
    - arg
    - '&redis::sentinel::Sentinel::replica_rotate_for'
    - unwrap
    - assert_is_connection_to_master
    - RedisResult::unwrap
    - TestSentinelContext::new
    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:251,1
    - Dst: Result::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:252,1
    - Dst: Result::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:253,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:255,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:256,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:255,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:258,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:258,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:260,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:260,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:260,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:260,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:265,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:265,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:265,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:265,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:265,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:265,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:265,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:273,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:274,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 279
    functionName: test_sentinel_no_role_or_info_permission
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - Result::sentinel_mut
    - get_connection
    - query
    - redis::cmd
    - '&redis::sentinel::Sentinel::master_for'
    - redis::Cmd::arg
    - '&mut Cmd::query'
    - Some
    - Result::sentinel_node_connection_info
    - arg
    - unwrap
    - RedisResult::unwrap
    - RedisResult::unwrap_err
    - TestSentinelContext::new
    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:285,1
    - Dst: Result::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:286,1
    - Dst: Result::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:287,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:289,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:290,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:289,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:292,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:292,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:294,1
    - Dst: '&redis::sentinel::Sentinel::replica_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:296,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:297,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:296,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:296,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:296,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 282
    functionDepth: 7
    functionLinenumber: 282
    functionLinenumberEnd: 303
    functionName: test_sentinel_connect_to_random_replica
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Result::sentinel_mut
    - get_connection
    - assert_connection_is_replica_of_correct_master
    - '&redis::sentinel::Sentinel::master_for'
    - '&redis::sentinel::Sentinel::replica_for'
    - Some
    - Result::sentinel_node_connection_info
    - unwrap
    - assert_is_connection_to_master
    - RedisResult::unwrap
    - TestSentinelContext::new
    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:309,1
    - Dst: Result::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:310,1
    - Dst: Result::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:311,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:313,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:314,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:313,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:316,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:316,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:318,1
    - Dst: connect_to_all_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:320,1
    - Dst: assert_connect_to_known_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 306
    functionDepth: 6
    functionLinenumber: 306
    functionLinenumberEnd: 336
    functionName: test_sentinel_connect_to_multiple_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Result::sentinel_mut
    - get_connection
    - '&redis::sentinel::Sentinel::master_for'
    - Some
    - Result::sentinel_node_connection_info
    - assert_connect_to_known_replicas
    - unwrap
    - assert_is_connection_to_master
    - RedisResult::unwrap
    - TestSentinelContext::new
    - connect_to_all_replicas
    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:342,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:343,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:344,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:346,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:347,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:346,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:349,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:349,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:351,1
    - Dst: stop
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:353,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:354,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:354,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:356,1
    - Dst: connect_to_all_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:358,1
    - Dst: assert_connect_to_known_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 374
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 374
    functionName: test_sentinel_server_down
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - '&redis::sentinel::Sentinel::master_for'
    - Duration::from_millis
    - stop
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - std::thread::sleep
    - assert_connect_to_known_replicas
    - unwrap
    - assert_is_connection_to_master
    - RedisResult::unwrap
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::new
    - connect_to_all_replicas
    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:379,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:380,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:381,1
    - Dst: '&redis::sentinel::Sentinel::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:381,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:381,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:381,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:381,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:385,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:385,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:385,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:389,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:390,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:390,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:391,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:392,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:392,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:389,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:397,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:398,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:398,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:399,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:400,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:400,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:397,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:405,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:405,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:406,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:406,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:406,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:409,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:411,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:412,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:413,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:414,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:413,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:418,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:418,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:419,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:419,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:419,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 377
    functionDepth: 7
    functionLinenumber: 377
    functionLinenumberEnd: 424
    functionName: test_sentinel_redis_client
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - TestSentinelContext::sentinels_connection_info
    - redis::cmd
    - '&redis::sentinel::Sentinel::master_for'
    - assert_connection_is_replica_of_correct_master
    - Client::open
    - '&redis::sentinel::Sentinel::clone'
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - redis::Cmd::query
    - '&Vec::clone'
    - unwrap
    - assert_is_connection_to_master
    - RedisResult::unwrap
    - SentinelClient::build
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::new
    - String::from
    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:429,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:430,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:431,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:431,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:432,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:433,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:433,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:430,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:438,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:439,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:439,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:440,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:441,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:441,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:438,1
    - Dst: get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:446,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:446,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: first
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:448,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 459
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 459
    functionName: test_sentinel_client
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - first
    - TestSentinelContext::sentinels_connection_info
    - get_sentinel_client
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - '&Vec::clone'
    - unwrap
    - RedisResult::unwrap
    - SentinelClient::build
    - TestSentinelContext::new
    - String::from
    linkageType: ''
    returnType: void
    signature: fn test_sentinel_client()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:465,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:467,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:465,1
    - Dst: get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:473,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 476
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 476
    functionName: test_sentinel_client_io_error
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - get_sentinel_client
    - expect_err
    - RedisResult::unwrap
    - SentinelClient::build
    - String::from
    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:481,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:483,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:483,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:487,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:487,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:483,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:489,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:490,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:490,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:491,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:489,1
    - Dst: get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:497,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 506
      start: 479
    functionDepth: 10
    functionLinenumber: 479
    functionLinenumberEnd: 506
    functionName: test_sentinel_client_not_sentinel_error
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - connection_info
    - TestSentinelContext::sentinels_connection_info
    - get_sentinel_client
    - iter
    - expect_err
    - map
    - clone
    - '&Vec::clone'
    - RedisResult::unwrap
    - SentinelClient::build
    - "cluster\n        .servers\n        .iter()\n        .map(|redis_server| redis_server.connection_info().clone())\n\
      \        .collect::<Vec<_>>"
    - TestSentinelContext::new
    - String::from
    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:511,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:512,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:513,1
    - Dst: '&redis::sentinel::Sentinel::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:513,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:513,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:513,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:513,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:517,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:517,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:517,1
    - Dst: SentinelClientBuilder::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:521,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:522,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:522,1
    - Dst: '&redis::sentinel::Sentinel::addr'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:525,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:525,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:526,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:521,1
    - Dst: SentinelClientBuilder::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:531,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:532,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:532,1
    - Dst: '&redis::sentinel::Sentinel::addr'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:535,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:535,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:536,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:531,1
    - Dst: set_client_to_sentinel_protocol
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:541,1
    - Dst: redis_test::server::use_protocol
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:541,1
    - Dst: TestSentinelContext::tls_mode
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:543,1
    - Dst: set_client_to_redis_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: build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:548,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:548,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: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:551,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:551,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:552,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:552,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:552,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:555,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:557,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:558,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:559,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:560,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:559,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:564,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:564,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:565,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:565,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:565,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 116
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 570
      start: 509
    functionDepth: 7
    functionLinenumber: 509
    functionLinenumberEnd: 570
    functionName: test_sentinel_client_builder
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - '&redis::sentinel::Sentinel::addr'
    - TestSentinelContext::tls_mode
    - SentinelClientBuilder::new
    - Client::open
    - iter
    - '&redis::sentinel::Sentinel::clone'
    - map
    - TestSentinelContext::sentinel_node_connection_info
    - redis::Cmd::query
    - unwrap
    - RedisResult::unwrap
    - set_client_to_sentinel_protocol
    - TestSentinelContext::new
    - redis::cmd
    - redis_test::server::use_protocol
    - '&redis::sentinel::Sentinel::master_for'
    - assert_connection_is_replica_of_correct_master
    - set_client_to_redis_tls_mode
    - build
    - assert_is_connection_to_master
    - String::from
    - ConnectionAddr::clone
    - TestSentinelContext::sentinels_connection_info
    - Some
    - TestSentinelContext::sentinel_mut
    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: 3
    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
    - redis::Cmd::arg
    - assert_is_master_role
    - unwrap
    - '&mut Cmd::query_async'
    linkageType: ''
    returnType: void
    signature: 'async fn async_assert_is_connection_to_master(conn: &mut MultiplexedConnection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs: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: 6
    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
    - redis::Cmd::arg
    - '&Client::get_connection_info'
    - unwrap
    - assert_replica_role_and_master_addr
    - '&mut Cmd::query_async'
    linkageType: ''
    returnType: void
    signature: 'async fn async_assert_connection_is_replica_of_correct_master(conn:
      &mut MultiplexedConnection,master_client: &Client,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&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
    - clone
    - async_assert_connection_is_replica_of_correct_master
    - unwrap
    - '&redis::sentinel::Sentinel::async_replica_rotate_for'
    - push
    - get_multiplexed_async_connection
    - get_connection_info
    - addr
    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: 7
    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
    - async_assert_connection_is_replica_of_correct_master
    - unwrap
    - '&redis::sentinel::Sentinel::async_replica_rotate_for'
    - get_multiplexed_async_connection
    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: 7
    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:
    - '&redis::sentinel::Sentinel::async_replica_for'
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - async_assert_is_connection_to_master
    - '&redis::sentinel::Sentinel::async_master_for'
    - async_assert_connection_is_replica_of_correct_master
    - unwrap
    - get_multiplexed_async_connection
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::new
    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:
    - Result::sentinel_mut
    - Some
    - Result::sentinel_node_connection_info
    - async_assert_is_connection_to_master
    - '&redis::sentinel::Sentinel::async_master_for'
    - async_assert_connect_to_known_replicas
    - unwrap
    - get_multiplexed_async_connection
    - TestSentinelContext::new
    - async_connect_to_all_replicas
    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: 4
    functionLinenumber: 733
    functionLinenumberEnd: 775
    functionName: async_tests::sentinel_server_down_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Duration::from_millis
    - stop
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - async_assert_is_connection_to_master
    - '&redis::sentinel::Sentinel::async_master_for'
    - std::thread::sleep
    - async_assert_connect_to_known_replicas
    - unwrap
    - get_multiplexed_async_connection
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::new
    - async_connect_to_all_replicas
    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: 7
    functionLinenumber: 778
    functionLinenumberEnd: 815
    functionName: async_tests::sentinel_redis_client_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::sentinels_connection_info
    - get_async_connection
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - async_assert_is_connection_to_master
    - '&Vec::clone'
    - '&redis::sentinel::Sentinel::async_master_for'
    - async_assert_connection_is_replica_of_correct_master
    - unwrap
    - RedisResult::unwrap
    - SentinelClient::build
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::new
    - String::from
    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:
    - first
    - TestSentinelContext::sentinels_connection_info
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - '&Vec::clone'
    - unwrap
    - RedisResult::unwrap
    - SentinelClient::build
    - async_get_sentinel_client
    - TestSentinelContext::new
    - String::from
    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:
    - connection_info
    - TestSentinelContext::sentinels_connection_info
    - "cluster\n            .servers\n            .iter()\n            .map(|redis_server|\
      \ redis_server.connection_info().clone())\n            .collect::<Vec<_>>"
    - iter
    - expect_err
    - Some
    - map
    - TestSentinelContext::sentinel_node_connection_info
    - clone
    - '&Vec::clone'
    - RedisResult::unwrap
    - SentinelClient::build
    - async_get_sentinel_client
    - TestSentinelContext::new
    - String::from
    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:
    - expect_err
    - RedisResult::unwrap
    - SentinelClient::build
    - async_get_sentinel_client
    - String::from
    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: 7
    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::sentinels_connection_info
    - AsyncConnectionConfig::new
    - Duration::from_secs
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - async_assert_is_connection_to_master
    - '&Vec::clone'
    - Self::set_connection_timeout
    - '&redis::sentinel::Sentinel::async_master_for'
    - unwrap
    - get_async_connection_with_config
    - async_assert_connection_is_replica_of_correct_master
    - RedisResult::unwrap
    - SentinelClient::build
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::new
    - String::from
    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: 7
    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::sentinels_connection_info
    - AsyncConnectionConfig::new
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - async_assert_is_connection_to_master
    - '&Vec::clone'
    - '&redis::sentinel::Sentinel::async_master_for'
    - async_assert_connection_is_replica_of_correct_master
    - unwrap
    - get_async_connection_with_config
    - RedisResult::unwrap
    - SentinelClient::build
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::new
    - String::from
    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: 7
    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::sentinels_connection_info
    - AsyncConnectionConfig::new
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - async_assert_is_connection_to_master
    - '&Vec::clone'
    - '&redis::sentinel::Sentinel::async_master_for'
    - async_assert_connection_is_replica_of_correct_master
    - unwrap
    - get_async_connection_with_config
    - RedisResult::unwrap
    - SentinelClient::build
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::new
    - String::from
    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:
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - unwrap
    - '&redis::sentinel::Sentinel::async_get_replica_clients'
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::new
    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:
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - '&redis::sentinel::Sentinel::async_get_replica_clients'
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::new
    - unwrap_err
    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: 7
    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:
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - '&redis::sentinel::Sentinel::async_master_for'
    - async_assert_connection_is_replica_of_correct_master
    - unwrap
    - get_multiplexed_async_connection
    - '&redis::sentinel::Sentinel::async_get_replica_clients'
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::new
    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: 4
    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:
    - Client::open
    - std::thread::sleep
    - TestSentinelContext::sentinel_node_connection_info
    - unwrap
    - RedisResult::unwrap
    - TestSentinelContext::new
    - std::time::Duration::from_millis
    - redis::cmd
    - arg
    - get_multiplexed_async_connection
    - '&redis::sentinel::Sentinel::async_get_replica_clients'
    - expect
    - "arg(\"set\")\n            .arg(master_name)\n            .arg(\"down-after-milliseconds\"\
      )\n            .arg(\"500\")\n            .query_async::<()>"
    - '&mut Cmd::arg'
    - TestSentinelContext::sentinels_connection_info
    - redis::Cmd::arg
    - stop
    - Some
    - clone
    - TestSentinelContext::sentinel_mut
    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:
    - impl combine::Parser::split
    - collect
    - split_once
    - 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: 8
    functionLinenumber: 1163
    functionLinenumberEnd: 1209
    functionName: pool_tests::test_sentinel_client
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::sentinel_node_connection_info
    - '&Vec::clone'
    - unwrap
    - get
    - HashSet::new
    - RedisResult::unwrap
    - as_str
    - TestSentinelContext::new
    - max_size
    - LockedSentinelClient::new
    - redis::cmd
    - RedisServer::push
    - RedisResult::deref_mut
    - build
    - Pool::builder
    - assert_is_connection_to_master
    - try_get
    - String::from
    - TestSentinelContext::sentinels_connection_info
    - '&mut Cmd::query'
    - redis::Cmd::arg
    - Some
    - Vec::new
    - parse_client_info
    - SentinelClient::build
    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:20,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_bignum.rs:20,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_bignum.rs:20,1
    - Dst: ToRedisArgs::to_redis_args
      Src: /src/redis-rs/redis/tests/test_bignum.rs:23,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_bignum.rs:23,1
    - Dst: T::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_bignum.rs:26,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_bignum.rs:26,1
    - Dst: T::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_bignum.rs:29,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_bignum.rs:29,1
    - Dst: T::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_bignum.rs:32,1
    - Dst: T::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_bignum.rs:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - content
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 37
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 37
    functionName: test
    functionSourceFile: /src/redis-rs/redis/tests/test_bignum.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Value::BulkString
    - Value::Int
    - T::from_redis_value_ref
    - ToRedisArgs::to_redis_args
    - Vec::from
    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:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    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:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    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:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    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:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    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: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    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: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    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: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    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:40,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:41,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:46,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:46,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:48,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:50,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:50,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:54,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:54,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:54,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:54,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:60,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:61,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:63,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:63,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:63,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:63,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:70,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:71,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:73,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:73,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:73,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:73,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:73,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cache.rs:79,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cache.rs:79,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cache.rs:79,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:80,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:81,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:82,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:84,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:84,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:84,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:84,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:91,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:92,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:93,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 76
    argCount: 1
    argNames:
    - test_with_optin
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 94
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 94
    functionName: test_cache_basic
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - into
    - assert_miss
    - redis::Cmd::arg
    - CacheConfig::default
    - assert_hit
    - Duration::from_millis
    - CacheConfig::new
    - Self::set_mode
    - assert_invalidate
    - supports_resp3
    - unwrap
    - query_async
    - TestContext::async_connection_with_cache_config
    - futures_time::task::sleep
    - '&mut Cmd::query_async'
    - get_cmd
    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:98,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:99,1
    - Dst: TestContext::async_connection_with_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:103,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:103,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:105,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:105,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:105,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:105,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:105,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:105,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:105,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:105,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:105,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:105,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:105,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:118,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:118,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:118,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:118,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:118,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:124,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:125,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:128,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:128,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:128,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:128,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:128,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:128,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:135,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:136,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:142,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:142,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:142,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:142,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:147,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 149
    functionName: cache_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - assert_miss
    - redis::cmd
    - redis::Cmd::arg
    - assert_hit
    - TestContext::async_connection_with_cache
    - arg
    - supports_resp3
    - get_pipe
    - unwrap
    - redis::Pipeline::cmd
    - query_async
    - ignore
    - cmd
    - '&mut Cmd::query_async'
    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:154,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:155,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:159,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:159,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:160,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:160,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: serde_json::to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:166,1
    - Dst: String::unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:166,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:168,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:168,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:168,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:168,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:168,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cache.rs:172,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:168,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:168,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:168,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:168,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:168,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cache.rs:177,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:168,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:168,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:168,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:183,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:183,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:183,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:183,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:183,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:192,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:193,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:195,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:195,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:195,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:195,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:195,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:195,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:195,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:206,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:207,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:209,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:209,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:209,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:209,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:209,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:217,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:218,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 219
    functionName: module_cache_json_get_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - assert_hit
    - supports_resp3
    - unwrap
    - redis::Pipeline::cmd
    - query_async
    - TestContext::with_modules
    - cmd
    - serde_json::to_string
    - Self::set_mode
    - arg
    - assert_miss
    - get_pipe
    - ignore
    - get_cmd
    - '&mut Cmd::arg'
    - String::unwrap
    - redis::Cmd::arg
    - CacheConfig::new
    - clone
    - TestContext::async_connection_with_cache_config
    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:224,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:225,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:229,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:229,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:230,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:230,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: serde_json::to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:236,1
    - Dst: String::unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:236,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:238,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:238,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:238,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:238,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cache.rs:242,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:238,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:238,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cache.rs:247,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:238,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:238,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:238,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:253,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:253,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:253,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:253,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:253,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:262,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:263,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:265,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:265,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:265,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:265,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:265,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:274,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:275,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:277,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:277,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:277,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:277,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:277,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:286,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:287,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:289,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:289,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:289,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:289,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:289,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:298,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:299,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:301,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:301,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:301,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:301,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:301,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:309,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:310,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:312,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:312,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:312,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:312,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:312,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:320,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:321,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:323,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:323,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:323,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:323,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:323,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:331,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:332,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 168
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 333
    functionName: module_cache_json_get_mget_different_paths
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - assert_hit
    - supports_resp3
    - unwrap
    - redis::Pipeline::cmd
    - query_async
    - TestContext::with_modules
    - cmd
    - serde_json::to_string
    - Self::set_mode
    - arg
    - assert_miss
    - get_pipe
    - ignore
    - get_cmd
    - '&mut Cmd::arg'
    - String::unwrap
    - redis::Cmd::arg
    - CacheConfig::new
    - clone
    - TestContext::async_connection_with_cache_config
    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:337,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:338,1
    - Dst: TestContext::async_connection_with_cache
      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: set
      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:344,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:344,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cache.rs:346,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:346,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cache.rs:348,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:348,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:350,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:351,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 352
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 352
    functionName: cache_is_not_target_type_dependent
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - assert_miss
    - assert_hit
    - TestContext::async_connection_with_cache
    - supports_resp3
    - unwrap
    - get
    - set
    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:356,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:357,1
    - Dst: TestContext::async_connection_with_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:361,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:361,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:363,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:363,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:363,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:363,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:363,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:363,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:363,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:363,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:363,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:363,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:363,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:363,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:363,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:380,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:381,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:383,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:383,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:383,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis/tests/test_cache.rs:383,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:383,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis/tests/test_cache.rs:383,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:383,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:383,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:383,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:397,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 72
    argCount: 1
    argNames:
    - atomic
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 399
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 399
    functionName: test_cache_with_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - '&mut Cmd::cmd'
    - assert_miss
    - redis::Cmd::arg
    - assert_hit
    - TestContext::async_connection_with_cache
    - arg
    - supports_resp3
    - get_pipe
    - unwrap
    - redis::Pipeline::cmd
    - query_async
    - ignore
    - cmd
    - '&mut Cmd::query_async'
    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:404,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:405,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:409,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:409,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:410,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:410,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:414,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:414,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:414,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:414,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:421,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:422,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:424,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:424,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:424,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:424,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:424,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:431,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:432,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:433,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:435,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:435,1
    - Dst: '&mut Cmd::set_cache_config'
      Src: /src/redis-rs/redis/tests/test_cache.rs:435,1
    - Dst: CommandCacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:437,1
    - Dst: Self::set_enable_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:437,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:435,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:435,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:442,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:443,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:445,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:445,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:445,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:445,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:452,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:453,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:455,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:455,1
    - Dst: '&mut Cmd::set_cache_config'
      Src: /src/redis-rs/redis/tests/test_cache.rs:455,1
    - Dst: CommandCacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:457,1
    - Dst: Self::set_enable_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:457,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:455,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:455,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:462,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:463,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:464,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 465
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 465
    functionName: cache_basic_partial_opt_in
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - '&mut Cmd::set_cache_config'
    - assert_miss
    - redis::cmd
    - redis::Cmd::arg
    - assert_hit
    - Self::set_enable_cache
    - CommandCacheConfig::new
    - CacheConfig::new
    - Self::set_mode
    - assert_invalidate
    - supports_resp3
    - unwrap
    - query_async
    - TestContext::async_connection_with_cache_config
    - '&mut Cmd::query_async'
    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:470,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:471,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:475,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:475,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:476,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:476,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:481,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:481,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:481,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:481,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:481,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:481,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:481,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:481,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:481,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:481,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:481,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:481,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:481,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:498,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:499,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:502,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:502,1
    - Dst: redis::Cmd::set_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:502,1
    - Dst: CommandCacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:504,1
    - Dst: Self::set_enable_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:504,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:502,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:502,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:502,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis/tests/test_cache.rs:502,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:502,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:502,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:502,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:519,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:520,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 83
    argCount: 1
    argNames:
    - atomic
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 521
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 521
    functionName: test_cache_pipeline_partial_opt_in
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - assert_hit
    - supports_resp3
    - unwrap
    - redis::Pipeline::cmd
    - query_async
    - Cmd::arg
    - cmd
    - redis::Cmd::set_cache_config
    - '&mut Cmd::cmd'
    - Self::set_enable_cache
    - Self::set_mode
    - arg
    - assert_miss
    - get_pipe
    - ignore
    - '&mut Cmd::query_async'
    - '&mut Cmd::arg'
    - redis::Cmd::arg
    - CommandCacheConfig::new
    - CacheConfig::new
    - TestContext::async_connection_with_cache_config
    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:525,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:526,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:531,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:531,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:533,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:535,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:535,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:539,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:539,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:539,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:539,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:539,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:539,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:547,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:547,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:547,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:547,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:547,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:554,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:555,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:557,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:557,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:557,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:557,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:557,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:564,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:565,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:567,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:567,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:567,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:567,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:573,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:574,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:576,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:576,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:576,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:576,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:582,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:583,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 84
    argCount: 1
    argNames:
    - test_with_opt_in
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 584
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 584
    functionName: test_cache_different_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - assert_miss
    - redis::Cmd::arg
    - CacheConfig::default
    - assert_hit
    - CacheConfig::new
    - Self::set_mode
    - arg
    - supports_resp3
    - unwrap
    - query_async
    - TestContext::async_connection_with_cache_config
    - '&mut Cmd::query_async'
    - get_cmd
    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:589,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:590,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:595,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:595,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:597,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:600,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_cache.rs:600,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cache.rs:601,1
    - Dst: Self::set_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:600,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:604,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:605,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:607,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:607,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:613,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:613,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:615,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:616,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:618,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:618,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:620,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:621,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_cache.rs:623,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cache.rs:623,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cache.rs:624,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:627,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:627,1
    - Dst: redis_test::server::RedisServer::new_with_addr_and_modules
      Src: /src/redis-rs/redis/tests/test_cache.rs:630,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:633,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:633,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:640,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:641,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 79
    argCount: 1
    argNames:
    - test_with_optin
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 642
      start: 588
    functionDepth: 5
    functionLinenumber: 588
    functionLinenumberEnd: 642
    functionName: test_connection_manager_maintains_statistics_after_crashes
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::set_cache_config
    - assert_hit
    - drop
    - supports_resp3
    - is_ok
    - unwrap
    - query_async
    - redis_test::server::RedisServer::new_with_addr_and_modules
    - get_connection_manager_with_config
    - redis::cmd
    - Self::set_mode
    - arg
    - assert_miss
    - redis::aio::ConnectionManagerConfig::new
    - Self::set_max_delay
    - get_cmd
    - send_packed_command
    - CacheConfig::default
    - Duration::from_millis
    - CacheConfig::new
    - client_addr
    - clone
    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:647,1
    - Dst: cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:648,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:648,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:650,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cache.rs:654,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:655,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:655,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:655,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:655,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:661,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:662,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:664,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:664,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:664,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:664,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:671,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:672,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:674,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:676,1
    - Dst: redis::cluster_routing::RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cache.rs:677,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:674,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:685,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:687,1
    - Dst: redis::cluster_routing::RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cache.rs:688,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:695,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:695,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:695,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:695,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:702,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:703,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:704,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 705
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 705
    functionName: cache_async_cluster_reconnect_all_nodes
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - assert_miss
    - redis::cmd
    - '&mut Cmd::query_async'
    - redis::Cmd::arg
    - CacheConfig::default
    - assert_hit
    - route_command
    - assert_invalidate
    - supports_resp3
    - unwrap
    - cache_config
    - TestClusterContext::async_connection
    - TestClusterContext::new_with_cluster_client_builder
    - redis::cluster_routing::RoutingInfo::MultiNode
    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:710,1
    - Dst: cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:711,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:711,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:713,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cache.rs:717,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: set
      Src: /src/redis-rs/redis/tests/test_cache.rs:720,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:720,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:722,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:722,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:722,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:722,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:722,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:728,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:729,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:732,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:732,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:732,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:732,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:732,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:732,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:739,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:740,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:746,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:746,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:746,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:746,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:751,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:752,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 753
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 753
    functionName: cache_async_cluster_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - set
    - assert_miss
    - redis::cmd
    - '&mut Cmd::query_async'
    - redis::Cmd::arg
    - CacheConfig::default
    - assert_hit
    - arg
    - supports_resp3
    - unwrap
    - cache_config
    - TestClusterContext::async_connection
    - query_async
    - TestClusterContext::new_with_cluster_client_builder
    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:758,1
    - Dst: Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_cache.rs:759,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - atomic
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 764
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 764
    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:769,1
    - Dst: cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:770,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:770,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:772,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:775,1
    - Dst: TestContext::get_version
      Src: /src/redis-rs/redis/tests/test_cache.rs:775,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cache.rs:797,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:798,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:798,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:798,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:798,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:798,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:805,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:805,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:805,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:805,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:811,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:812,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:813,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:815,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:815,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:815,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:815,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:821,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:822,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:824,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:824,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:824,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:824,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cache.rs:830,1
    - Dst: filter
      Src: /src/redis-rs/redis/tests/test_cache.rs:830,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/tests/test_cache.rs:832,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cache.rs:830,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cache.rs:834,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cache.rs:834,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: split_once
      Src: /src/redis-rs/redis/tests/test_cache.rs:838,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:838,1
    - Dst: parse
      Src: /src/redis-rs/redis/tests/test_cache.rs:840,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:840,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/tests/test_cache.rs:841,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:841,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:844,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:845,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/tests/test_cache.rs:846,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:846,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cache.rs:830,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cache.rs:851,1
    - Dst: find
      Src: /src/redis-rs/redis/tests/test_cache.rs:851,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cache.rs:853,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:851,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cache.rs:855,1
    - Dst: find
      Src: /src/redis-rs/redis/tests/test_cache.rs:855,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cache.rs:857,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:855,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:860,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:861,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:861,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:861,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:861,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:861,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/tests/test_cache.rs:861,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:867,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:860,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:872,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:873,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:873,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:873,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:873,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:873,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/tests/test_cache.rs:873,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:879,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:872,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:885,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:886,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:886,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:886,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:886,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:886,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:886,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/tests/test_cache.rs:886,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:893,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:885,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cache.rs:897,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cache.rs:897,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cache.rs:897,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:899,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:901,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:906,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:907,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:907,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:907,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:907,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:907,1
    - Dst: take
      Src: /src/redis-rs/redis/tests/test_cache.rs:907,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:913,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:906,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:918,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:919,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:919,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:919,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:919,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:919,1
    - Dst: take
      Src: /src/redis-rs/redis/tests/test_cache.rs:919,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:925,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:918,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:930,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:931,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:931,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:931,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:931,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:942,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:945,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:946,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 286
    argCount: 1
    argNames:
    - migrate
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 947
      start: 768
    functionDepth: 2
    functionLinenumber: 768
    functionLinenumberEnd: 947
    functionName: test_cache_async_cluster_slot_change
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - take
    - assert_hit
    - iter
    - map
    - TestContext::get_version
    - assert_invalidate
    - supports_resp3
    - unwrap
    - query_async
    - futures_time::task::sleep
    - filter
    - split
    - contains
    - redis::cmd
    - find
    - arg
    - split_once
    - get_singe_route
    - into
    - assert_miss
    - to_owned
    - cache_config
    - TestClusterContext::async_connection
    - to_string
    - '&mut Cmd::query_async'
    - TestClusterContext::new_with_cluster_client_builder
    - parse
    - '&mut Cmd::arg'
    - redis::Cmd::arg
    - CacheConfig::default
    - collect
    - parse::<u16>
    - route_command
    - Duration::from_millis
    - is_empty
    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:951,1
    - Dst: Cmd::set_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:953,1
    - Dst: CommandCacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:953,1
    - Dst: Self::set_enable_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - name
    - enable_opt_in
    argTypes:
    - '&str'
    - bool
    constantsTouched: []
    func_position:
      end: 956
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 956
    functionName: get_cmd
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 5
    functionsReached:
    - Cmd::set_cache_config
    - CommandCacheConfig::new
    - redis::cmd
    - Self::set_enable_cache
    linkageType: ''
    returnType: redis::Cmd
    signature: 'fn get_cmd(name: &str, enable_opt_in: bool) -> redis::Cmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:960,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:961,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:965,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:966,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:965,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:969,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:969,1
    - Dst: '&mut Cmd::take'
      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: Cmd::query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:971,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:971,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:973,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:974,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 975
      start: 959
    functionDepth: 2
    functionLinenumber: 959
    functionLinenumberEnd: 975
    functionName: test_readonly_commands_with_patterns_are_not_cached
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - assert_miss
    - redis::cmd
    - redis::Cmd::arg
    - assert_hit
    - CacheConfig::new
    - Cmd::query_async
    - supports_resp3
    - '&mut Cmd::take'
    - unwrap
    - TestContext::async_connection_with_cache_config
    linkageType: ''
    returnType: void
    signature: async fn test_readonly_commands_with_patterns_are_not_cached()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:979,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:980,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:984,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:985,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:984,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:988,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:988,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:988,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:988,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:988,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:994,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:994,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:994,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:994,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:1000,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:1000,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:1000,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1000,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:1007,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:1008,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:1009,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:1011,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:1011,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:1011,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:1011,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1011,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cache.rs:1017,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cache.rs:1017,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cache.rs:1017,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:1019,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:1019,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:1019,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1019,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:1026,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:1027,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:1028,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 978
    functionDepth: 2
    functionLinenumber: 978
    functionLinenumberEnd: 1029
    functionName: test_bitcount_is_handled_correctly
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - into
    - assert_miss
    - redis::cmd
    - redis::Cmd::arg
    - assert_hit
    - Duration::from_millis
    - CacheConfig::new
    - assert_invalidate
    - supports_resp3
    - unwrap
    - query_async
    - TestContext::async_connection_with_cache_config
    - futures_time::task::sleep
    - '&mut Cmd::query_async'
    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:1033,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:1034,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:1037,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:1038,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1037,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:1042,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cache.rs:1043,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:1044,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1044,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:1046,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1046,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:1048,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:1049,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1032
    functionDepth: 3
    functionLinenumber: 1032
    functionLinenumberEnd: 1050
    functionName: test_that_a_pipeline_with_all_commands_cached_does_not_hang
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - assert_miss
    - assert_hit
    - CacheConfig::new
    - supports_resp3
    - unwrap
    - get
    - query_async
    - TestContext::async_connection_with_cache_config
    - 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:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 21
    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:25,1
    - Dst: std::io::Error::other
      Src: /src/redis-rs/redis/tests/test_types.rs:25,1
    - Dst: source
      Src: /src/redis-rs/redis/tests/test_types.rs:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: types::test_redis_error_source_presence_for_io_wrapped_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - RedisError::from
    - source
    - std::io::Error::other
    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:36,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_types.rs:39,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_types.rs:40,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 53
    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: 83
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 83
    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:115,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:116,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:117,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: types::test_info_dict
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - unwrap
    - '&str::into'
    - Value::SimpleString
    linkageType: ''
    returnType: void
    signature: fn test_info_dict()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:204,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:205,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 209
    functionName: types::test_role_ret
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - unwrap
    - clone
    linkageType: ''
    returnType: void
    signature: fn test_role_ret()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:218,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:218,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_types.rs:218,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:221,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:221,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_types.rs:221,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:225,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:225,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_types.rs:225,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_types.rs:225,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:229,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:229,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_types.rs:229,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:233,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:233,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_types.rs:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 236
    functionName: types::test_i32
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - into
    - Value::BulkString
    - Value::Int
    - Value::SimpleString
    - parse_redis_value
    - to_string
    linkageType: ''
    returnType: void
    signature: fn test_i32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:241,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:241,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:241,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:245,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:245,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: types::test_u32
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - '&str::into'
    - Value::SimpleString
    linkageType: ''
    returnType: void
    signature: fn test_u32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:253,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:254,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:254,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 257
    functionName: types::test_parse_boxed
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - '&str::to_string'
    - String::clone
    - Value::SimpleString
    linkageType: ''
    returnType: void
    signature: fn test_parse_boxed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:262,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
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:267,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:267,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: types::test_parse_arc
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - '&str::to_string'
    - String::clone
    - Value::SimpleString
    linkageType: ''
    returnType: void
    signature: fn test_parse_arc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:275,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:276,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:276,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:276,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:280,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:280,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 283
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 283
    functionName: types::test_parse_rc
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - '&str::to_string'
    - String::clone
    - Value::SimpleString
    linkageType: ''
    returnType: void
    signature: fn test_parse_rc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:288,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:288,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:296,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:297,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:297,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:297,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:301,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:302,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:302,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:302,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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 307
    functionName: types::test_vec
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - Self::clone
    - parse_redis_value
    - Vec::from
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn test_vec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:312,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:312,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:320,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:321,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:321,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:321,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:325,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:326,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:326,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:326,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:328,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 338
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 338
    functionName: types::test_box_slice
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - Self::clone
    - parse_redis_value
    - Vec::from
    - Value::Array
    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:343,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:343,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:351,1
    - Dst: parse_redis_value::<Arc<[_]>>
      Src: /src/redis-rs/redis/tests/test_types.rs:353,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:353,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:353,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:357,1
    - 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: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:359,1
    - Dst: parse_redis_value::<Arc<[_]>>
      Src: /src/redis-rs/redis/tests/test_types.rs:361,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 371
    functionName: types::test_arc_slice
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - Self::clone
    - parse_redis_value
    - Vec::from
    - Value::Array
    - 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:376,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:376,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 380
    functionName: types::test_single_bool_vec
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - Value::BulkString
    - '&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:385,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:385,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 389
    functionName: types::test_single_i32_vec
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - Value::BulkString
    - '&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:394,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:394,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 398
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 398
    functionName: types::test_single_u32_vec
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - Value::BulkString
    - '&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:403,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:403,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: types::test_single_string_vec
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - Value::BulkString
    - '&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:411,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 419
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 419
    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:423,1
    - Dst: parse_redis_value::<Vec<(u8, u8)>>
      Src: /src/redis-rs/redis/tests/test_types.rs:429,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:430,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_types.rs:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 433
    functionName: types::test_tuple_does_not_panic_if_vec_is_wrong_size
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value::<Vec<(u8, u8)>>
    - Value::Array
    - unwrap_err
    - clone
    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:444,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:444,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:452,1
    - Dst: PathBuf::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:453,1
    - Dst: '&str::into'
      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: 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
    - Dst: Hasher::default
      Src: /src/redis-rs/redis/tests/test_types.rs:469,1
    - Dst: HashMap::with_hasher
      Src: /src/redis-rs/redis/tests/test_types.rs:470,1
    - Dst: PathBuf::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:471,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:471,1
    - Dst: PathBuf::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:472,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:472,1
    - Dst: PathBuf::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:473,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:473,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:477,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 480
      start: 436
    functionDepth: 7
    functionLinenumber: 436
    functionLinenumberEnd: 480
    functionName: types::test_hashmap
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - PathBuf::insert
    - parse_redis_value
    - HashMap::with_hasher
    - '&str::into'
    - Hasher::default
    - HashMap::new
    - 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:500,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:500,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:500,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:501,1
    - Dst: PathBuf::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:502,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:502,1
    - Dst: PathBuf::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:503,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:503,1
    - Dst: PathBuf::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:504,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:504,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:510,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:510,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:510,1
    - Dst: Hasher::default
      Src: /src/redis-rs/redis/tests/test_types.rs:512,1
    - Dst: HashMap::with_hasher
      Src: /src/redis-rs/redis/tests/test_types.rs:513,1
    - Dst: PathBuf::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:514,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:514,1
    - Dst: PathBuf::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:515,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:515,1
    - Dst: PathBuf::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:516,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:516,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:520,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 523
      start: 484
    functionDepth: 7
    functionLinenumber: 484
    functionLinenumberEnd: 523
    functionName: types::test_hashbrown_hashmap
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - PathBuf::insert
    - parse_redis_value
    - HashMap::with_hasher
    - '&str::into'
    - clone
    - Hasher::default
    - HashMap::new
    - 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:531,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:531,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_types.rs:537,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:538,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:538,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:539,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:539,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:540,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:540,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:544,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:544,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_types.rs:547,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_types.rs:548,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:548,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_types.rs:549,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:549,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_types.rs:550,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:550,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:552,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_types.rs:555,1
    - Dst: std::iter::Chain::collect
      Src: /src/redis-rs/redis/tests/test_types.rs:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 560
      start: 527
    functionDepth: 7
    functionLinenumber: 527
    functionLinenumberEnd: 560
    functionName: types::test_hashbrown_hashset
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - insert
    - RedisServer::insert
    - Value::Int
    - parse_redis_value
    - '&str::to_string'
    - to_redis_args
    - HashSet::new
    - std::iter::Chain::collect
    - Value::Array
    - into_iter
    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:565,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:565,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:565,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:568,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:568,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:568,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:572,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:572,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:572,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:575,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:575,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:575,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:578,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:578,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:578,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:582,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:582,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:582,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:585,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:588,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:591,1
    - Dst: Value::Int
      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: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 597
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 597
    functionName: types::test_bool
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - Value::Int
    - Value::SimpleString
    - parse_redis_value
    - '&str::into'
    linkageType: ''
    returnType: void
    signature: fn test_bool()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:606,1
    - Dst: Bytes::from_static
      Src: /src/redis-rs/redis/tests/test_types.rs:607,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:609,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:609,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:613,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:613,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:613,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:616,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:619,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:622,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:622,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:625,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 628
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 628
    functionName: types::test_bytes
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - Value::Int
    - Value::SimpleString
    - parse_redis_value
    - Bytes::from_static
    - '&str::into'
    - Vec::from
    linkageType: ''
    returnType: void
    signature: fn test_bytes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Uuid::from_str
      Src: /src/redis-rs/redis/tests/test_types.rs:637,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:637,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_types.rs:638,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/tests/test_types.rs:638,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:640,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:640,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:644,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:644,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:644,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:647,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:650,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:653,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:653,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:656,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 658
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 658
    functionName: types::test_uuid
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Value::BulkString
    - to_vec
    - as_bytes
    - Value::SimpleString
    - Value::Int
    - '&str::into'
    - FromRedisValue::from_redis_value_ref
    - 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:666,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:669,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:669,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:673,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:673,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:673,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:676,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:680,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:680,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:680,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:683,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:686,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:686,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:689,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 692
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 692
    functionName: types::test_cstring
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - Value::Int
    - Value::SimpleString
    - parse_redis_value
    - '&str::into'
    - Vec::from
    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: 743
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 743
    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:751,1
    - Dst: Result::to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:758,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_types.rs:764,1
    - Dst: "into_iter()\n            .collect::<BTreeMap<_, _>>"
      Src: /src/redis-rs/redis/tests/test_types.rs:764,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 771
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 771
    functionName: types::test_deref_types_to_redis_args
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - to_redis_args
    - Result::to_redis_args
    - "into_iter()\n            .collect::<BTreeMap<_, _>>"
    - into_iter
    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:777,1
    - Dst: TlsFilePaths::to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:778,1
    - Dst: Result::to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 790
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 790
    functionName: types::test_cow_types_to_redis_args
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - '&str::to_string'
    - Result::to_redis_args
    - TlsFilePaths::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:797,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_types.rs:797,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:801,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:804,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_types.rs:805,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_types.rs:805,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:806,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:806,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_types.rs:805,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_types.rs:809,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/test_types.rs:810,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:810,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:812,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 814
      start: 793
    functionDepth: 8
    functionLinenumber: 793
    functionLinenumberEnd: 814
    functionName: types::test_large_usize_array_to_redis_args_and_back
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Value::BulkString
    - collect
    - to_redis_args
    - iter
    - map
    - FromRedisValue::from_redis_value_ref
    - clone
    - Vec::new
    - encode_value
    - Result::iter_mut
    - io::Result::unwrap
    - Value::Array
    - enumerate
    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:821,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_types.rs:821,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:825,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:829,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_types.rs:829,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_types.rs:829,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:829,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_types.rs:829,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_types.rs:830,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/test_types.rs:831,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:831,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:833,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 835
      start: 817
    functionDepth: 8
    functionLinenumber: 817
    functionLinenumberEnd: 835
    functionName: types::test_large_u8_array_to_redis_args_and_back
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Value::Int
    - collect
    - to_redis_args
    - iter
    - map
    - FromRedisValue::from_redis_value_ref
    - Vec::new
    - encode_value
    - Result::iter_mut
    - io::Result::unwrap
    - Value::Array
    - enumerate
    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:841,1
    - Dst: String::new
      Src: /src/redis-rs/redis/tests/test_types.rs:841,1
    - Dst: Result::iter_mut
      Src: /src/redis-rs/redis/tests/test_types.rs:842,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_types.rs:842,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:846,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:849,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_types.rs:850,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_types.rs:850,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:851,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:851,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_types.rs:850,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_types.rs:854,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/test_types.rs:855,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:855,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:857,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 859
      start: 838
    functionDepth: 8
    functionLinenumber: 838
    functionLinenumberEnd: 859
    functionName: types::test_large_string_array_to_redis_args_and_back
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Value::BulkString
    - collect
    - to_redis_args
    - iter
    - map
    - FromRedisValue::from_redis_value_ref
    - clone
    - Vec::new
    - encode_value
    - Result::iter_mut
    - io::Result::unwrap
    - String::new
    - Value::Array
    - enumerate
    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:867,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:870,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_types.rs:871,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_types.rs:871,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:872,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:872,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_types.rs:871,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_types.rs:875,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/test_types.rs:876,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:876,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
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:881,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 883
      start: 862
    functionDepth: 8
    functionLinenumber: 862
    functionLinenumberEnd: 883
    functionName: types::test_0_length_usize_array_to_redis_args_and_back
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Value::BulkString
    - collect
    - to_redis_args
    - iter
    - map
    - FromRedisValue::from_redis_value_ref
    - clone
    - Vec::new
    - encode_value
    - io::Result::unwrap
    - Value::Array
    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:889,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:889,1
    - Dst: redis::FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:892,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:892,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:897,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 913
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 913
    functionName: types::test_attributes
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - redis::FromRedisValue::from_redis_value_ref
    - parse_redis_value
    - FromRedisValue::from_redis_value_ref
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_attributes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:918,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:928,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 938
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 938
    functionName: types::arrays_to_tuples
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - unwrap
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn arrays_to_tuples()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:943,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:974,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:974,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:976,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:977,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:977,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:977,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:978,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:978,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:978,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:980,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:981,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:981,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:981,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:982,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:982,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:982,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:983,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:983,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:983,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:985,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:986,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:986,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 941
    functionDepth: 7
    functionLinenumber: 941
    functionLinenumberEnd: 1000
    functionName: types::test_complex_nested_tuples
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - RedisServer::insert
    - parse_redis_value
    - '&str::to_string'
    - unwrap
    - HashMap::new
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn test_complex_nested_tuples()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:1005,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:1038,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:1038,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:1040,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:1041,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:1041,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:1041,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:1042,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:1042,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:1042,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_types.rs:1043,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:1044,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:1044,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:1045,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:1045,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:1046,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:1046,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:1048,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:1049,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:1049,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:1049,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:1050,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:1050,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:1050,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_types.rs:1051,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:1052,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:1052,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:1053,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:1053,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:1054,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1003
    functionDepth: 7
    functionLinenumber: 1003
    functionLinenumberEnd: 1064
    functionName: types::test_complex_nested_tuples_resp3
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - RedisServer::insert
    - parse_redis_value
    - '&str::to_string'
    - unwrap
    - HashSet::new
    - HashMap::new
    - Value::Array
    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:25,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:25,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:25,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:25,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:25,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:30,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:30,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:30,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - con
    argTypes:
    - ClusterConnection
    constantsTouched: []
    func_position:
      end: 41
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 41
    functionName: cluster::smoke_test_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - '&mut Cmd::exec'
    - redis::cmd
    - redis::Cmd::arg
    - exec
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn smoke_test_connection(mut con: ClusterConnection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:45,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:46,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: cluster::test_cluster_basics
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - Result::connection
    - TestClusterContext::new
    - smoke_test_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:54,1
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:59,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 9
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: cluster::test_default_reject_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new_with_config
    - Default::default
    - ClusterType::get_intended
    linkageType: ''
    returnType: void
    signature: fn test_default_reject_invalid_hostnames()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis/tests/test_cluster.rs:72,1
    - Dst: TestClusterContext::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:77,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:81,1
    - Dst: danger_accept_invalid_hostnames
      Src: /src/redis-rs/redis/tests/test_cluster.rs:83,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:86,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 69
    functionDepth: 9
    functionLinenumber: 69
    functionLinenumberEnd: 87
    functionName: cluster::test_danger_accept_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new_with_config_and_builder
    - Default::default
    - danger_accept_invalid_hostnames
    - smoke_test_connection
    - Result::connection
    - ClusterType::get_intended
    linkageType: ''
    returnType: void
    signature: fn test_danger_accept_invalid_hostnames()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:91,1
    - Dst: username
      Src: /src/redis-rs/redis/tests/test_cluster.rs:92,1
    - Dst: RedisCluster::username
      Src: /src/redis-rs/redis/tests/test_cluster.rs:93,1
    - Dst: '&''static str::password'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:92,1
    - Dst: RedisCluster::password
      Src: /src/redis-rs/redis/tests/test_cluster.rs:94,1
    - Dst: Result::disable_default_user
      Src: /src/redis-rs/redis/tests/test_cluster.rs:96,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:98,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: cluster::test_cluster_with_username_and_password
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - RedisCluster::password
    - username
    - '&''static str::password'
    - Result::disable_default_user
    - smoke_test_connection
    - Result::connection
    - RedisCluster::username
    - TestClusterContext::new_with_cluster_client_builder
    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:103,1
    - Dst: username
      Src: /src/redis-rs/redis/tests/test_cluster.rs:104,1
    - Dst: RedisCluster::username
      Src: /src/redis-rs/redis/tests/test_cluster.rs:105,1
    - Dst: '&''static str::password'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: cluster::test_cluster_with_bad_password
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - RedisCluster::username
    - '&''static str::password'
    - TestClusterContext::new_with_cluster_client_builder
    - username
    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:113,1
    - Dst: RedisClusterConfiguration::single_replica_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:114,1
    - Dst: read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster.rs:115,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:117,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:120,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:120,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:120,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:120,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:120,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:125,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:125,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:125,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 112
    functionDepth: 9
    functionLinenumber: 112
    functionLinenumberEnd: 137
    functionName: cluster::test_cluster_read_from_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - read_from_replicas
    - TestClusterContext::new_with_config_and_builder
    - '&mut Cmd::arg'
    - '&mut Cmd::exec'
    - redis::cmd
    - redis::Cmd::arg
    - exec
    - Result::connection
    - RedisResult::unwrap
    - RedisClusterConfiguration::single_replica_config
    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:141,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:142,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:144,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:144,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:144,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:144,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:144,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_cluster.rs:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 158
    functionName: cluster::test_cluster_eval
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - query
    - redis::cmd
    - TestClusterContext::new
    - redis::Cmd::arg
    - arg
    - Result::connection
    linkageType: ''
    returnType: void
    signature: fn test_cluster_eval()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster.rs:162,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_cluster.rs:162,1
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:165,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:167,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_cluster.rs:169,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:169,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_cluster.rs:170,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:170,1
    - Dst: bool::hgetall
      Src: /src/redis-rs/redis/tests/test_cluster.rs:171,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 186
      start: 161
    functionDepth: 8
    functionLinenumber: 161
    functionLinenumberEnd: 186
    functionName: cluster::test_cluster_resp3
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - bool::hset
    - bool::hgetall
    - TestClusterContext::new
    - use_protocol
    - unwrap
    - Result::connection
    - 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:190,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:192,1
    - Dst: bool::mset
      Src: /src/redis-rs/redis/tests/test_cluster.rs:194,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:194,1
    - Dst: bool::mget
      Src: /src/redis-rs/redis/tests/test_cluster.rs:198,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: cluster::test_cluster_multi_shard_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new
    - bool::mset
    - unwrap
    - Result::connection
    - bool::mget
    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:205,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:206,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:208,1
    - Dst: key
      Src: /src/redis-rs/redis/tests/test_cluster.rs:216,1
    - Dst: key
      Src: /src/redis-rs/redis/tests/test_cluster.rs:216,1
    - Dst: invoke
      Src: /src/redis-rs/redis/tests/test_cluster.rs:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 218
    functionName: cluster::test_cluster_script
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - key
    - redis::Script::new
    - TestClusterContext::new
    - Result::connection
    - invoke
    linkageType: ''
    returnType: void
    signature: fn test_cluster_script()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:222,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:223,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:224,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:226,1
    - Dst: ClusterPipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:226,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:226,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:226,1
    - Dst: "cmd(\"SET\")\n            .arg(\"key_1\")\n            .arg(42)\n    \
        \        .query::<Vec<String>>"
      Src: /src/redis-rs/redis/tests/test_cluster.rs:226,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 234
    functionName: cluster::test_cluster_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - TestClusterContext::new
    - redis::Cmd::arg
    - cluster_pipe
    - "cmd(\"SET\")\n            .arg(\"key_1\")\n            .arg(42)\n         \
      \   .query::<Vec<String>>"
    - unwrap
    - ClusterPipeline::cmd
    - Result::connection
    - Result::wait_for_cluster_up
    linkageType: ''
    returnType: void
    signature: fn test_cluster_pipeline()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:239,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:240,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:241,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:243,1
    - Dst: ClusterPipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:243,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:243,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:243,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:243,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:243,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:243,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:243,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:243,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:243,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:243,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:257,1
    - Dst: ClusterPipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:257,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:257,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:257,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:257,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:257,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:257,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:257,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_cluster.rs:266,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:266,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_cluster.rs:269,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 271
    functionName: cluster::test_cluster_pipeline_multiple_keys
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - Result::unwrap
    - TestClusterContext::new
    - redis::Cmd::arg
    - cluster_pipe
    - "cmd(\"HGET\")\n            .arg(\"hash_1\")\n            .arg(\"key_1\")\n\
      \            .cmd(\"ZCARD\")\n            .arg(\"zset\")\n            .query::<Vec<redis::Value>>"
    - arg
    - FromRedisValue::from_redis_value_ref
    - unwrap
    - ClusterPipeline::cmd
    - Result::connection
    - Cmd::arg
    - cmd
    - "cmd(\"HSET\")\n            .arg(\"hash_1\")\n            .arg(\"key_1\")\n\
      \            .arg(\"value_1\")\n            .cmd(\"ZADD\")\n            .arg(\"\
      zset\")\n            .arg(1)\n            .arg(\"zvalue_2\")\n            .query::<Vec<i64>>"
    - Result::wait_for_cluster_up
    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:275,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:276,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:277,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:279,1
    - Dst: ClusterPipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:279,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:279,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:279,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster.rs:279,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:279,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:279,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:279,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:293,1
    - Dst: ClusterPipeline::keys
      Src: /src/redis-rs/redis/tests/test_cluster.rs:293,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:293,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 299
    functionName: cluster::test_cluster_pipeline_invalid_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - ClusterPipeline::keys
    - TestClusterContext::new
    - redis::Cmd::arg
    - cluster_pipe
    - unwrap_err
    - exec
    - ClusterPipeline::cmd
    - Result::connection
    - ignore
    - RedisResult::unwrap_err
    - cmd
    - Result::wait_for_cluster_up
    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:303,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:304,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:305,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:306,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:308,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:309,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:311,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:312,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster.rs:313,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster.rs:313,1
    - Dst: Pipeline::exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:315,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:315,1
    - Dst: Pipeline::clear
      Src: /src/redis-rs/redis/tests/test_cluster.rs:317,1
    - Dst: Pipeline::get
      Src: /src/redis-rs/redis/tests/test_cluster.rs:319,1
    - Dst: query::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:322,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 302
    functionDepth: 7
    functionLinenumber: 302
    functionLinenumberEnd: 324
    functionName: cluster::test_cluster_pipeline_command_ordering
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - RedisServer::push
    - Pipeline::get
    - TestClusterContext::new
    - cluster_pipe
    - Pipeline::clear
    - Vec::new
    - Pipeline::set
    - query::<Vec<String>>
    - Result::connection
    - Pipeline::exec
    - ignore
    - RedisResult::unwrap
    - unwrap
    - Result::wait_for_cluster_up
    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:329,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:330,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:331,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:332,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:334,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:335,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:338,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:338,1
    - Dst: '&mut Cmd::ignore'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:338,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster.rs:342,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster.rs:342,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:343,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:344,1
    - Dst: Pipeline::exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:347,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:347,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_cluster.rs:349,1
    - Dst: std::time::Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_cluster.rs:349,1
    - Dst: Pipeline::clear
      Src: /src/redis-rs/redis/tests/test_cluster.rs:351,1
    - Dst: Pipeline::get
      Src: /src/redis-rs/redis/tests/test_cluster.rs:353,1
    - Dst: query::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:356,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 328
    functionDepth: 7
    functionLinenumber: 328
    functionLinenumberEnd: 358
    functionName: cluster::test_cluster_pipeline_ordering_with_improper_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new
    - cluster_pipe
    - std::thread::sleep
    - Pipeline::cmd
    - '&mut Cmd::ignore'
    - Pipeline::set
    - unwrap
    - Result::wait_for_cluster_up
    - Pipeline::exec
    - RedisResult::unwrap_err
    - RedisServer::push
    - Pipeline::clear
    - query::<Vec<String>>
    - Result::connection
    - ignore
    - Pipeline::get
    - redis::Cmd::arg
    - Vec::new
    - std::time::Duration::from_secs
    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:365,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:366,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:367,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:367,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:367,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:367,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:368,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:368,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:369,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:369,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster.rs:369,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:375,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:375,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:379,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:379,1
    - Dst: arg("test").query::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 382
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 382
    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:
    - Err
    - contains_slice
    - MockEnv::new
    - arg("test").query::<Value>
    - Value::SimpleString
    - '&str::into'
    - Cmd::arg
    - cmd
    - Value::Array
    - Ok
    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:389,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:390,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:391,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:391,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:391,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:391,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:392,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:392,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:393,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:393,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster.rs:393,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:412,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:412,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:416,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:416,1
    - Dst: arg("test").query::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 418
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 418
    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:
    - Err
    - contains_slice
    - MockEnv::new
    - arg("test").query::<Value>
    - Value::SimpleString
    - '&str::into'
    - Cmd::arg
    - cmd
    - Value::Array
    - Ok
    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:424,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: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster.rs:433,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:435,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:436,1
    - Dst: parse_redis_value
      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: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:437,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:437,1
    - Dst: '&str::to_vec'
      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: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 445
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 445
    functionName: cluster::test_cluster_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - Err
    - Value::BulkString
    - parse_redis_value
    - Cmd::arg
    - MockEnv::with_client_builder
    - arg("test").query::<Option<i32>>
    - fetch_add
    - '&str::to_vec'
    - respond_startup
    - cmd
    - ClusterClientBuilder::retries
    - atomic::AtomicUsize::new
    - Ok
    linkageType: ''
    returnType: void
    signature: fn test_cluster_retries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:451,1
    - Dst: atomic::AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:451,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:457,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:458,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:458,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:461,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster.rs:463,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:464,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:465,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:465,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:470,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:470,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 477
      start: 448
    functionDepth: 7
    functionLinenumber: 448
    functionLinenumberEnd: 477
    functionName: cluster::test_cluster_exhaust_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - ClusterClientBuilder::retries
    - ClusterClient::builder
    - Err
    - parse_redis_value
    - MockEnv::with_client_builder
    - clone
    - arg("test").query::<Option<i32>>
    - Arc::new
    - fetch_add
    - Cmd::arg
    - respond_startup
    - cmd
    - atomic::AtomicUsize::new
    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:483,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:484,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:489,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster.rs:490,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster.rs:491,1
    - Dst: RedisServer::store
      Src: /src/redis-rs/redis/tests/test_cluster.rs:493,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:495,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:496,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:496,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:496,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:496,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:499,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:503,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:503,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:505,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:505,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster.rs:505,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:526,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:526,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:526,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:526,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:531,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:531,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:531,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 534
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 534
    functionName: cluster::test_cluster_move_error_when_new_node_is_added
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - RedisServer::load
    - fetch_add
    - Cmd::arg
    - '&str::to_vec'
    - cmd
    - Value::Array
    - Err
    - MockEnv::new
    - parse_redis_value
    - arg("test").query::<Option<i32>>
    - atomic::AtomicUsize::new
    - contains_slice
    - '&str::into'
    - respond_startup
    - Ok
    - RedisServer::store
    - atomic::AtomicBool::new
    - Value::SimpleString
    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:539,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:539,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:544,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:545,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:549,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:552,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:555,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:555,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:563,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:563,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:567,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:567,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:567,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:567,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:577,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:577,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 580
      start: 537
    functionDepth: 7
    functionLinenumber: 537
    functionLinenumberEnd: 580
    functionName: cluster::test_cluster_ask_redirect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - Err
    - Value::BulkString
    - parse_redis_value
    - Cmd::arg
    - MockEnv::with_client_builder
    - arg("test").query::<Option<i32>>
    - AtomicI32::new
    - Arc::new
    - RedisServer::fetch_add
    - '&str::to_vec'
    - cmd
    - respond_startup_two_nodes
    - Ok
    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:586,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:587,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:593,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster.rs:594,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster.rs:595,1
    - Dst: RedisServer::store
      Src: /src/redis-rs/redis/tests/test_cluster.rs:597,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:599,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:600,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:600,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:600,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:600,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:603,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:607,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:607,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:608,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:613,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:613,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:618,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:618,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:618,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:618,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:626,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:626,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:626,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 629
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 629
    functionName: cluster::test_cluster_ask_error_when_new_node_is_added
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - RedisServer::load
    - fetch_add
    - Cmd::arg
    - '&str::to_vec'
    - cmd
    - Err
    - MockEnv::new
    - parse_redis_value
    - arg("test").query::<Option<i32>>
    - atomic::AtomicUsize::new
    - contains_slice
    - as_bytes
    - '&str::into'
    - respond_startup
    - Ok
    - RedisServer::store
    - atomic::AtomicBool::new
    - Value::SimpleString
    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:640,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:641,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:641,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster.rs:641,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster.rs:646,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:649,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:649,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:649,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:649,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:655,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:655,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:655,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:663,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:664,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:664,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster.rs:664,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster.rs:669,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:671,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:671,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:671,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:671,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:677,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:677,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:677,1
    - Dst: "arg(\"test\")\n            .arg(\"123\")\n            .query::<Option<Value>>"
      Src: /src/redis-rs/redis/tests/test_cluster.rs:677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 682
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 682
    functionName: cluster::test_cluster_replica_read
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - ClusterClient::builder
    - respond_startup_with_replica
    - Err
    - Value::BulkString
    - Value::SimpleString
    - ClusterClientBuilder::read_from_replicas
    - MockEnv::with_client_builder
    - '&str::into'
    - arg("test").query::<Option<i32>>
    - '&str::to_vec'
    - Cmd::arg
    - cmd
    - ClusterClientBuilder::retries
    - "arg(\"test\")\n            .arg(\"123\")\n            .query::<Option<Value>>"
    - Ok
    linkageType: ''
    returnType: void
    signature: fn test_cluster_replica_read()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:687,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:687,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:692,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:693,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:693,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:696,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:701,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:702,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:702,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster.rs:702,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:702,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:706,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:706,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:706,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:706,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:712,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:712,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 715
      start: 685
    functionDepth: 7
    functionLinenumber: 685
    functionLinenumberEnd: 715
    functionName: cluster::test_cluster_io_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - Err
    - Value::BulkString
    - std::io::Error::new
    - respond_startup_two_nodes
    - Cmd::arg
    - RedisError::from
    - MockEnv::with_client_builder
    - arg("test").query::<Option<i32>>
    - AtomicI32::new
    - Arc::new
    - RedisServer::fetch_add
    - '&str::to_vec'
    - cmd
    - ClusterClientBuilder::retries
    - Ok
    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:720,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:720,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:721,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:722,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:724,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:727,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:728,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:728,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster.rs:728,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster.rs:728,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:732,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:732,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 739
      start: 718
    functionDepth: 7
    functionLinenumber: 718
    functionLinenumberEnd: 739
    functionName: cluster::test_cluster_non_retryable_error_should_not_retry
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - Err
    - MockEnv::new
    - into
    - Self::clone
    - arg("test").query::<Option<i32>>
    - AtomicI32::new
    - Arc::new
    - Cmd::arg
    - Self::fetch_add
    - cmd
    - 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:747,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:747,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:747,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:748,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:749,1
    - Dst: RedisFuture::split_whitespace
      Src: /src/redis-rs/redis/tests/test_cluster.rs:750,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:751,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:753,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:759,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:760,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:760,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster.rs:760,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:765,1
    - Dst: Option<Vec<MockSlotRange>>::clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:768,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster.rs:771,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:771,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:771,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:772,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:772,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:772,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:772,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:774,1
    - Dst: query::<Option<()>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:778,1
    - Dst: RedisServer::lock
      Src: /src/redis-rs/redis/tests/test_cluster.rs:779,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:779,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster.rs:779,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 57
    argCount: 4
    argNames:
    - name
    - command
    - expected_ports
    - slots_config
    argTypes:
    - '&''static str'
    - '&''static str'
    - Vec<u16>
    - Option<Vec<MockSlotRange>>
    constantsTouched: []
    func_position:
      end: 782
      start: 741
    functionDepth: 7
    functionLinenumber: 741
    functionLinenumberEnd: 782
    functionName: cluster::test_cluster_fan_out
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - RedisServer::lock
    - Cmd::get_packed_command
    - Arc::new
    - Cmd::arg
    - ClusterClientBuilder::retries
    - redis::Cmd::new
    - ClusterClient::builder
    - std::sync::Mutex::new
    - Err
    - Option<Vec<MockSlotRange>>::clone
    - query::<Option<()>>
    - Self::unwrap
    - sort
    - RedisFuture::split_whitespace
    - MockEnv::with_client_builder
    - ClusterClientBuilder::read_from_replicas
    - '&str::into'
    - RedisServer::clone
    - push
    - Ok
    - Value::SimpleString
    - Vec::new
    - respond_startup_with_replica_using_config
    - Self::lock
    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:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 792
      start: 785
    functionDepth: 8
    functionLinenumber: 785
    functionLinenumberEnd: 792
    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:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 802
      start: 795
    functionDepth: 8
    functionLinenumber: 795
    functionLinenumberEnd: 802
    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:806,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 823
      start: 805
    functionDepth: 8
    functionLinenumber: 805
    functionLinenumberEnd: 823
    functionName: cluster::test_cluster_fan_out_out_once_to_each_primary_when_no_replicas_are_available
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - test_cluster_fan_out
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_cluster_fan_out_out_once_to_each_primary_when_no_replicas_are_available()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_cluster_fan_out
      Src: /src/redis-rs/redis/tests/test_cluster.rs:827,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 854
      start: 826
    functionDepth: 8
    functionLinenumber: 826
    functionLinenumberEnd: 854
    functionName: cluster::test_cluster_fan_out_out_once_even_if_primary_has_multiple_slot_ranges
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - test_cluster_fan_out
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_cluster_fan_out_out_once_even_if_primary_has_multiple_slot_ranges()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:859,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:860,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:860,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:860,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:865,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:866,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:866,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster.rs:866,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:871,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/tests/test_cluster.rs:872,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:872,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cluster.rs:873,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/tests/test_cluster.rs:873,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster.rs:876,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:877,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:877,1
    - Dst: into_bytes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:878,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster.rs:873,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:885,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:885,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster.rs:885,1
    - Dst: query::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:889,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:889,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 891
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 891
    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:
    - Value::BulkString
    - iter
    - unwrap
    - std::str::from_utf8
    - Cmd::arg
    - cmd
    - ClusterClientBuilder::retries
    - Value::Array
    - ClusterClient::builder
    - contains
    - Err
    - arg
    - filter_map
    - MockEnv::with_client_builder
    - ClusterClientBuilder::read_from_replicas
    - query::<Vec<String>>
    - into_bytes
    - Ok
    - '&mut Cmd::arg'
    - collect
    - Some
    - respond_startup_with_replica_using_config
    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:896,1
    - Dst: atomic
      Src: /src/redis-rs/redis/tests/test_cluster.rs:897,1
    - Dst: '&mut Pipeline::set'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:897,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster.rs:897,1
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis/tests/test_cluster.rs:898,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:904,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:905,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:905,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster.rs:905,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:910,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:921,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:921,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster.rs:921,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:923,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:923,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster.rs:923,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:923,1
    - Dst: bool::req_packed_commands
      Src: /src/redis-rs/redis/tests/test_cluster.rs:930,1
    - Dst: RedisFuture::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 940
      start: 894
    functionDepth: 8
    functionLinenumber: 894
    functionLinenumberEnd: 940
    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:
    - '&mut Pipeline::set'
    - ClusterClient::builder
    - Err
    - bool::req_packed_commands
    - std::io::Error::new
    - RedisFuture::unwrap
    - RedisError::from
    - MockEnv::with_client_builder
    - ClusterClientBuilder::read_from_replicas
    - get_packed_pipeline
    - Value::Array
    - get
    - atomic
    - respond_startup_with_replica_using_config
    - ClusterClientBuilder::retries
    - Ok
    - 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:945,1
    - Dst: atomic
      Src: /src/redis-rs/redis/tests/test_cluster.rs:946,1
    - Dst: '&mut Pipeline::set'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:946,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster.rs:946,1
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis/tests/test_cluster.rs:947,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster.rs:957,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:958,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:964,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:965,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:965,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster.rs:965,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:970,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:972,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:972,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:972,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:974,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:974,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster.rs:974,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:974,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:981,1
    - Dst: RedisFuture::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 983
      start: 943
    functionDepth: 8
    functionLinenumber: 943
    functionLinenumberEnd: 983
    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:
    - '&mut Pipeline::set'
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - Err
    - std::io::Error::new
    - RedisFuture::unwrap
    - RedisError::from
    - bool::req_packed_command
    - MockEnv::with_client_builder
    - ClusterClientBuilder::read_from_replicas
    - clone
    - get_packed_pipeline
    - get
    - atomic
    - respond_startup_with_replica_using_config
    - Value::Array
    - Ok
    - 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:988,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1005,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1006,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1006,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1006,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1011,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1014,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1016,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1016,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1016,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1016,1
    - Dst: bool::req_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1020,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 986
    functionDepth: 2
    functionLinenumber: 986
    functionLinenumberEnd: 1022
    functionName: cluster::test_cluster_can_be_created_with_partial_slot_coverage
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - Err
    - bool::req_command
    - redis::cmd
    - Value::SimpleString
    - Some
    - ClusterClientBuilder::read_from_replicas
    - MockEnv::with_client_builder
    - clone
    - '&str::into'
    - respond_startup_with_replica_using_config
    - ClusterClientBuilder::retries
    - Ok
    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:1027,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1027,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1029,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1030,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1032,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1033,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1034,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1038,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1025
    functionDepth: 5
    functionLinenumber: 1025
    functionLinenumberEnd: 1042
    functionName: cluster::test_cluster_handle_complete_server_disconnect_without_panicking
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - drop
    - bool::route_command
    - bool::req_packed_command
    - Cmd::get_packed_command
    - Result::connection
    - RoutingInfo::SingleNode
    - cmd
    - retries
    - TestClusterContext::new_with_cluster_client_builder
    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:1046,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1047,1
    - Dst: Result::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1050,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1052,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1053,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1055,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1058,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1058,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1063,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1063,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1067,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1069,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1072,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1073,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1045
    functionDepth: 10
    functionLinenumber: 1045
    functionLinenumberEnd: 1076
    functionName: cluster::test_cluster_reconnect_after_complete_server_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - RedisCluster::new
    - drop
    - bool::route_command
    - bool::req_packed_command
    - Result::get_ports
    - Cmd::get_packed_command
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - Result::connection
    - RoutingInfo::SingleNode
    - RedisResult::unwrap
    - cmd
    - retries
    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:1080,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1081,1
    - Dst: Result::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1084,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1086,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1087,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1090,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1092,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1095,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1097,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1100,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1102,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1079
    functionDepth: 10
    functionLinenumber: 1079
    functionLinenumberEnd: 1107
    functionName: cluster::test_cluster_reconnect_after_complete_server_disconnect_route_to_many
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - RedisCluster::new
    - drop
    - bool::route_command
    - Some
    - Result::get_ports
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - Result::connection
    - RoutingInfo::MultiNode
    - RedisResult::unwrap
    - cmd
    - 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:1111,1
    - Dst: TestClusterContext::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1112,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1114,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1114,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1114,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1118,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1118,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1110
    functionDepth: 9
    functionLinenumber: 1110
    functionLinenumberEnd: 1123
    functionName: cluster::fail_on_empty_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - query::<String>
    - TestClusterContext::new
    - cluster_pipe
    - TestClusterContext::connection
    - unwrap_err
    - redis::Cmd::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:1132,1
    - Dst: support::mtls_test::create_cluster_client_from_cluster
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1134,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1134,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1135,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1135,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1137,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1137,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1137,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1137,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1137,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1142,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1142,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1142,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1131
    functionDepth: 2
    functionLinenumber: 1131
    functionLinenumberEnd: 1153
    functionName: cluster::test_cluster_basics_with_mtls
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - Result::unwrap
    - get_connection
    - support::mtls_test::create_cluster_client_from_cluster
    - redis::cmd
    - '&mut Cmd::exec'
    - redis::Cmd::arg
    - exec
    - RedisResult::unwrap
    - TestClusterContext::new_with_mtls
    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:1157,1
    - Dst: support::mtls_test::create_cluster_client_from_cluster
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1159,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1159,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1160,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1162,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1162,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1162,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1162,1
    - Dst: bool::is_ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1156
    functionDepth: 10
    functionLinenumber: 1156
    functionLinenumberEnd: 1185
    functionName: cluster::test_cluster_should_not_connect_without_mtls
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - get_connection
    - first
    - support::mtls_test::create_cluster_client_from_cluster
    - connection_info
    - bool::is_ok
    - unwrap
    - addr
    - TestClusterContext::new_with_mtls
    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:
    - TestContext::new
    - '&mut Cmd::arg'
    - key
    - redis::Script::new
    - redis::cmd
    - redis::Cmd::arg
    - arg
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    - invoke
    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
    - redis::Script::new
    - TestContext::connection
    - load
    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:
    - TestContext::new
    - redis::Script::new
    - prepare_invoke
    - ScriptInvocation::load
    - TestContext::connection
    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:
    - TestContext::new
    - redis::Pipeline::invoke_script
    - query
    - redis::Script::new
    - arg
    - TestContext::connection
    - 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:
    - TestContext::new
    - query
    - redis::Script::new
    - arg
    - unwrap
    - TestContext::connection
    - redis::Pipeline::load_script
    - invoke_script
    - 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: tokio::runtime::Handle::try_current
      Src: /src/redis-rs/redis/tests/test_async.rs:34,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_async.rs:36,1
    - Dst: smol::spawn
      Src: /src/redis-rs/redis/tests/test_async.rs:40,1
    - Dst: detach
      Src: /src/redis-rs/redis/tests/test_async.rs:40,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: 45
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: b::a::s::i::c::_::a::s::y::n::c::::::::t::e::s::t::_::b::l::o::c::k::_::o::n::_::a::l::l::_::p::a::n::i::c::s::_::f::r::o::m::_::s::p::a::w::n::s::spawn
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - spawn
    - detach
    - tokio::runtime::Handle::try_current
    - smol::spawn
    linkageType: ''
    returnType: void
    signature: 'fn spawn<T>(fut: impl std::future::Future<Output = T> + Send + Sync
      + ''static)whereT: Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_async.rs:49,1
    - Dst: AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_async.rs:49,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:50,1
    - Dst: block_on_all
      Src: /src/redis-rs/redis/tests/test_async.rs:51,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_async.rs:53,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:54,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:54,1
    - Dst: Self::store
      Src: /src/redis-rs/redis/tests/test_async.rs:55,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:60,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:60,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_async.rs:61,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - RuntimeType
    constantsTouched: []
    func_position:
      end: 68
      start: 29
    functionDepth: 8
    functionLinenumber: 29
    functionLinenumberEnd: 68
    functionName: basic_async::test_block_on_all_panics_from_spawns
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - RedisServer::load
    - AtomicBool::new
    - block_on_all
    - Self::store
    - RedisServer::clone
    - spawn
    - Arc::new
    - futures_time::task::sleep
    - 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:72,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:72,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:72,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:72,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:72,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:78,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:78,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:78,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:78,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:83,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:83,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 88
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 88
    functionName: basic_async::args
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Cmd::exec_async'
    - exec_async
    - unwrap
    - '&mut Cmd::query_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:92,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:92,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:92,1
    - Dst: set_no_response
      Src: /src/redis-rs/redis/tests/test_async.rs:92,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:92,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:92,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:101,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:101,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:101,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:101,1
    - Dst: set_no_response
      Src: /src/redis-rs/redis/tests/test_async.rs:101,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:101,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:101,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:110,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:110,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 112
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 112
    functionName: basic_async::no_response_skips_response_even_on_error
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Cmd::exec_async'
    - arg
    - unwrap
    - set_no_response
    - '&mut Cmd::query_async'
    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:123,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:123,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:123,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:123,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - conn
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 138
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 138
    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:
    - '&mut Cmd::arg'
    - redis::cmd
    - redis::Cmd::arg
    - exec_async
    - unwrap
    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:118,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:139,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:141,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:144,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:144,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:144,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:141,1
    - Dst: test
      Src: /src/redis-rs/redis/tests/test_async.rs:150,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:156,1
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:159,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:159,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:159,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:156,1
    - Dst: test
      Src: /src/redis-rs/redis/tests/test_async.rs:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 167
    functionName: basic_async::works_with_paused_time_when_no_timeouts_are_set
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - AsyncConnectionConfig::new
    - ConnectionManagerConfig::new
    - test
    - tokio::time::pause
    - Self::set_connection_timeout
    - unwrap
    - Self::set_response_timeout
    - get_connection_manager_with_config
    - get_multiplexed_async_connection_with_config
    linkageType: ''
    returnType: void
    signature: async fn works_with_paused_time_when_no_timeouts_are_set()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:171,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:172,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:172,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_async.rs:178,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:179,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:179,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:179,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:179,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:179,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:179,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:188,1
    - Dst: RedisConnectionInfo::set_username
      Src: /src/redis-rs/redis/tests/test_async.rs:188,1
    - Dst: Self::set_password
      Src: /src/redis-rs/redis/tests/test_async.rs:188,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:191,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:191,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:192,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:192,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:192,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:192,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:198,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:198,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:198,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 170
    functionDepth: 10
    functionLinenumber: 170
    functionLinenumberEnd: 204
    functionName: basic_async::can_authenticate_with_username_and_password
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - TestContext::async_connection
    - connection_info
    - '&mut Cmd::query_async'
    - redis::Client::open
    - arg
    - Self::arg
    - unwrap
    - get_multiplexed_async_connection
    - RedisResult::unwrap
    - Cmd::arg
    - RedisConnectionInfo::set_username
    - cmd
    - set_redis_settings
    - Self::set_password
    - redis::Cmd::new
    - redis_settings
    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:215,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - connection
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 221
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 221
    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:232,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:233,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:233,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:234,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:234,1
    - Dst: pop
      Src: /src/redis-rs/redis/tests/test_async.rs:236,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - connection
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 242
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 242
    functionName: basic_async::nice_hash_api_in_pipe
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - Pipeline::query_async
    - Pipeline::cmd
    - unwrap
    - pop
    - 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:246,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:247,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:248,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:249,1
    - Dst: RedisResult::and_then
      Src: /src/redis-rs/redis/tests/test_async.rs:251,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:254,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:256,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:256,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:256,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:256,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:263,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:265,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 245
    functionDepth: 9
    functionLinenumber: 245
    functionLinenumberEnd: 271
    functionName: basic_async::dont_panic_on_closed_multiplexed_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - RedisResult::and_then
    - redis::cmd
    - redis::Cmd::arg
    - drop
    - map
    - clone
    - get_multiplexed_async_connection
    - query_async
    - cmd
    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:275,1
    - Dst: Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:276,1
    - Dst: '&mut Pipeline::cmd'
      Src: /src/redis-rs/redis/tests/test_async.rs:276,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:276,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:276,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:276,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:276,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:276,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:276,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:276,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:276,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:276,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:287,1
    - Dst: RedisResult::map_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:287,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 294
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 294
    functionName: basic_async::pipeline_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - redis::Cmd::arg
    - '&mut Pipeline::cmd'
    - Pipeline::query_async
    - arg
    - Pipeline::atomic
    - unwrap
    - ignore
    - RedisResult::map_ok
    - cmd
    - redis::pipe
    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:300,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:301,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:301,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:301,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:301,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:301,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:301,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:301,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:301,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:301,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:301,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:301,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:312,1
    - Dst: impl AsyncCommands::get
      Src: /src/redis-rs/redis/tests/test_async.rs:313,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 315
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 315
    functionName: basic_async::client_tracking_doesnt_block_execution
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - redis::Cmd::arg
    - Pipeline::cmd
    - arg
    - Pipeline::query_async
    - impl AsyncCommands::get
    - unwrap
    - ignore
    - cmd
    - redis::pipe
    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:319,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:319,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:322,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:322,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:322,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:322,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:322,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:330,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:330,1
    - Dst: '&mut Pipeline::ping'
      Src: /src/redis-rs/redis/tests/test_async.rs:330,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:330,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:330,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:330,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:330,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:330,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:330,1
    - Dst: into_server_errors
      Src: /src/redis-rs/redis/tests/test_async.rs:342,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:342,1
    - Dst: impl AsyncCommands::get
      Src: /src/redis-rs/redis/tests/test_async.rs:349,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:349,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 351
      start: 318
    functionDepth: 9
    functionLinenumber: 318
    functionLinenumberEnd: 351
    functionName: basic_async::pipeline_transaction_with_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - redis::pipe
    - redis::cmd
    - redis::Cmd::arg
    - redis::Pipeline::atomic
    - unwrap_err
    - into_server_errors
    - exec_async
    - "atomic()\n            .ping()\n            .set(\"x\", 142)\n            .ignore()\n\
      \            .get(\"x\")\n            .set(\"x\", 142)\n            .query_async::<()>"
    - Option::unwrap
    - unwrap
    - get
    - impl AsyncCommands::get
    - ignore
    - '&mut Pipeline::ping'
    - set
    - set::<_, _, ()>
    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:356,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:357,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:357,1
    - Dst: set::<_, _, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:358,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:358,1
    - Dst: json_set::<_, _, _, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:359,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:359,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:363,1
    - Dst: atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:364,1
    - Dst: '&mut Pipeline::ping'
      Src: /src/redis-rs/redis/tests/test_async.rs:364,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:364,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:364,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_async.rs:364,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:364,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:364,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_async.rs:364,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:364,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_async.rs:364,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:364,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_async.rs:364,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:364,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:364,1
    - Dst: ignore_errors
      Src: /src/redis-rs/redis/tests/test_async.rs:388,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:388,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 355
    functionDepth: 9
    functionLinenumber: 355
    functionLinenumberEnd: 409
    functionName: basic_async::module_json_and_pipeline_transaction_with_ignore_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::async_connection
    - redis::pipe
    - ignore_errors
    - json_set::<_, _, _, ()>
    - json_get
    - unwrap
    - get
    - query_async
    - TestContext::with_modules
    - atomic
    - '&mut Pipeline::ping'
    - ignore
    - set
    - set::<_, _, ()>
    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:413,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:413,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:415,1
    - Dst: ping
      Src: /src/redis-rs/redis/tests/test_async.rs:416,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:416,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:416,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:416,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:416,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:416,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:416,1
    - Dst: ignore_errors
      Src: /src/redis-rs/redis/tests/test_async.rs:425,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:425,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 444
      start: 412
    functionDepth: 9
    functionLinenumber: 412
    functionLinenumberEnd: 444
    functionName: basic_async::pipeline_with_ignore_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - set::<_, _, ()>
    - ignore_errors
    - arg
    - unwrap
    - get
    - query_async
    - ignore
    - cmd
    - set
    - ping
    - 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:448,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_async.rs:449,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:449,1
    - Dst: hset
      Src: /src/redis-rs/redis/tests/test_async.rs:449,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:449,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:449,1
    - Dst: Pipeline::exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:455,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:456,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_async.rs:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 461
      start: 447
    functionDepth: 9
    functionLinenumber: 447
    functionLinenumberEnd: 461
    functionName: basic_async::pipeline_returns_server_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Pipeline::exec_async
    - hset
    - Pipeline::set
    - get
    - ignore
    - to_string
    - unwrap_err
    - redis::pipe
    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:464,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:467,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:469,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:473,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:473,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:473,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_async.rs:475,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:473,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:473,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:479,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:479,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:479,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:479,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:484,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:484,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:484,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/tests/test_async.rs:484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 2
    argNames:
    - con
    - i
    argTypes:
    - impl AsyncCommands + Clone
    - i32
    constantsTouched: []
    func_position:
      end: 492
      start: 463
    functionDepth: 9
    functionLinenumber: 463
    functionLinenumberEnd: 492
    functionName: basic_async::test_cmd
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - redis::cmd
    - Self::clone
    - redis::Cmd::arg
    - as_bytes
    - '&mut Cmd::exec_async'
    - clone
    - exec_async
    - RedisResult::map
    - unwrap
    - '&mut Cmd::query_async'
    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:496,1
    - Dst: Pipeline::zrange
      Src: /src/redis-rs/redis/tests/test_async.rs:497,1
    - Dst: Pipeline::zrange
      Src: /src/redis-rs/redis/tests/test_async.rs:498,1
    - Dst: impl ConnectionLike::req_packed_commands
      Src: /src/redis-rs/redis/tests/test_async.rs:499,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 503
      start: 495
    functionDepth: 3
    functionLinenumber: 495
    functionLinenumberEnd: 503
    functionName: basic_async::pipe_over_multiplexed_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - impl ConnectionLike::req_packed_commands
    - pipe
    - Pipeline::zrange
    - unwrap
    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:507,1
    - Dst: test_cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:507,1
    - Dst: impl AsyncCommands + Clone::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:507,1
    - Dst: future::join_all
      Src: /src/redis-rs/redis/tests/test_async.rs:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands + Clone
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 9
    functionLinenumber: 506
    functionLinenumberEnd: 509
    functionName: basic_async::running_multiple_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - impl AsyncCommands + Clone::clone
    - future::join_all
    - test_cmd
    - 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:513,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:514,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:519,1
    - Dst: Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:520,1
    - Dst: '&mut Pipeline::cmd'
      Src: /src/redis-rs/redis/tests/test_async.rs:520,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:520,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:520,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:520,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:520,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:520,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:520,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:520,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:520,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:531,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/tests/test_async.rs:531,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/tests/test_async.rs:539,1
    - Dst: map_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:539,1
    - Dst: map_err
      Src: /src/redis-rs/redis/tests/test_async.rs:539,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:539,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 57
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike + Clone
    constantsTouched: []
    func_position:
      end: 546
      start: 512
    functionDepth: 9
    functionLinenumber: 512
    functionLinenumberEnd: 546
    functionName: basic_async::transaction_multiplexed_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - Self::clone
    - redis::Cmd::arg
    - map_ok
    - '&mut Pipeline::cmd'
    - map_err
    - map
    - arg
    - Pipeline::query_async
    - Pipeline::atomic
    - RedisResult::map
    - unwrap
    - ignore
    - future::try_join_all
    - cmd
    - redis::pipe
    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:550,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:553,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:553,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:553,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:553,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:553,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_async.rs:559,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: '&mut Cmd::cursor_arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:562,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:562,1
    - Dst: Self::iter_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: next_item
      Src: /src/redis-rs/redis/tests/test_async.rs:570,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:571,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike + Send
    constantsTouched: []
    func_position:
      end: 578
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 578
    functionName: basic_async::async_scanning
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - RedisServer::insert
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Cmd::cursor_arg'
    - exec_async
    - Self::iter_async
    - unwrap
    - '&mut Cmd::clone'
    - std::collections::HashSet::new
    - next_item
    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:582,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:586,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:586,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:587,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:586,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:586,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:586,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_async.rs:592,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:592,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:595,1
    - Dst: redis::Cmd::cursor_arg
      Src: /src/redis-rs/redis/tests/test_async.rs:595,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:595,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:595,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:595,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:595,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:595,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:595,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:595,1
    - Dst: next_item
      Src: /src/redis-rs/redis/tests/test_async.rs:606,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:607,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike + Send
    constantsTouched: []
    func_position:
      end: 614
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 614
    functionName: basic_async::async_scanning_iterative
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - RedisServer::insert
    - redis::cmd
    - "cursor_arg(0)\n            .arg(\"MATCH\")\n            .arg(\"key*\")\n  \
      \          .arg(\"COUNT\")\n            .arg(1)\n            .clone()\n    \
      \        .iter_async::<String>"
    - redis::Cmd::arg
    - arg
    - clone
    - exec_async
    - Option::unwrap
    - unwrap
    - redis::Cmd::cursor_arg
    - std::collections::HashSet::new
    - next_item
    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:618,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:622,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:622,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:623,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:622,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:622,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:622,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_async.rs:628,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:628,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:631,1
    - Dst: redis::Cmd::cursor_arg
      Src: /src/redis-rs/redis/tests/test_async.rs:631,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:631,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:631,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:631,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:631,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:631,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:631,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:631,1
    - Dst: next_item
      Src: /src/redis-rs/redis/tests/test_async.rs:642,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:643,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike + Sync + Send
    constantsTouched: []
    func_position:
      end: 650
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 650
    functionName: basic_async::async_scanning_stream
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - RedisServer::insert
    - redis::cmd
    - "cursor_arg(0)\n            .arg(\"MATCH\")\n            .arg(\"key*\")\n  \
      \          .arg(\"COUNT\")\n            .arg(1)\n            .clone()\n    \
      \        .iter_async::<String>"
    - redis::Cmd::arg
    - arg
    - clone
    - exec_async
    - Option::unwrap
    - unwrap
    - redis::Cmd::cursor_arg
    - std::collections::HashSet::new
    - next_item
    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:654,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:656,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:656,1
    - Dst: bool::set_response_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:657,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:657,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_async.rs:658,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:659,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:659,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:659,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_async.rs:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 663
      start: 653
    functionDepth: 10
    functionLinenumber: 653
    functionLinenumberEnd: 663
    functionName: basic_async::response_timeout_multiplexed_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - TestContext::async_connection
    - Duration::from_millis
    - bool::req_packed_command
    - bool::set_response_timeout
    - arg
    - unwrap
    - Cmd::arg
    - redis::Cmd::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:670,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:671,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:672,1
    - Dst: Script::key
      Src: /src/redis-rs/redis/tests/test_async.rs:673,1
    - Dst: ScriptInvocation::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:673,1
    - Dst: "key(\"key1\")\n            .arg(\"foo\")\n            .invoke_async::<()>"
      Src: /src/redis-rs/redis/tests/test_async.rs:673,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:673,1
    - Dst: Script::key
      Src: /src/redis-rs/redis/tests/test_async.rs:679,1
    - Dst: ScriptInvocation::invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:679,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:679,1
    - Dst: Script::invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:681,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:681,1
    - Dst: Script::key
      Src: /src/redis-rs/redis/tests/test_async.rs:683,1
    - Dst: ScriptInvocation::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:683,1
    - Dst: "key(\"key1\")\n            .arg(\"bar\")\n            .invoke_async::<()>"
      Src: /src/redis-rs/redis/tests/test_async.rs:683,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:683,1
    - Dst: Script::key
      Src: /src/redis-rs/redis/tests/test_async.rs:689,1
    - Dst: ScriptInvocation::invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:689,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:689,1
    - Dst: Script::invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:691,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:691,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 57
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 693
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 693
    functionName: basic_async::script
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Script::invoke_async
    - redis::Script::new
    - "key(\"key1\")\n            .arg(\"bar\")\n            .invoke_async::<()>"
    - ScriptInvocation::arg
    - unwrap
    - ScriptInvocation::invoke_async
    - "key(\"key1\")\n            .arg(\"foo\")\n            .invoke_async::<()>"
    - Script::key
    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:698,1
    - Dst: prepare_invoke
      Src: /src/redis-rs/redis/tests/test_async.rs:700,1
    - Dst: ScriptInvocation::load_async
      Src: /src/redis-rs/redis/tests/test_async.rs:700,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 702
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 702
    functionName: basic_async::script_load
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - prepare_invoke
    - ScriptInvocation::load_async
    - redis::Script::new
    - unwrap
    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:707,1
    - Dst: Script::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:707,1
    - Dst: ScriptInvocation::invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:707,1
    - Dst: RedisResult::map_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:707,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 717
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 717
    functionName: basic_async::script_returning_complex_type
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Script::new
    - unwrap
    - ScriptInvocation::invoke_async
    - Script::arg
    - 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:724,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:726,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:726,1
    - Dst: kill_client_async
      Src: /src/redis-rs/redis/tests/test_async.rs:727,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:727,1
    - Dst: get::<_, Option<String>>
      Src: /src/redis-rs/redis/tests/test_async.rs:733,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:735,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:735,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:735,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 740
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 740
    functionName: basic_async::io_error_on_kill_issue_320
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - TestContext::async_connection
    - into
    - Duration::from_millis
    - get::<_, Option<String>>
    - unwrap
    - kill_client_async
    - sleep
    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:744,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:746,1
    - Dst: Self::set_password
      Src: /src/redis-rs/redis/tests/test_async.rs:746,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:747,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:747,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:747,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:747,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:747,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:755,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:755,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:757,1
    - Dst: err
      Src: /src/redis-rs/redis/tests/test_async.rs:757,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 767
      start: 743
    functionDepth: 9
    functionLinenumber: 743
    functionLinenumberEnd: 767
    functionName: basic_async::invalid_password_issue_343
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Client::open
    - clone
    - client_addr
    - unwrap
    - RedisConnectionInfo::default
    - get_multiplexed_async_connection
    - RedisResult::unwrap
    - into_connection_info
    - err
    - set_redis_settings
    - Self::set_password
    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:772,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:772,1
    - Dst: impl AsyncCommands::append
      Src: /src/redis-rs/redis/tests/test_async.rs:773,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:773,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_async.rs:776,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/tests/test_async.rs:776,1
    - Dst: Self::with_pattern
      Src: /src/redis-rs/redis/tests/test_async.rs:776,1
    - Dst: scan_options::<String>
      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: Self::collect
      Src: /src/redis-rs/redis/tests/test_async.rs:778,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:778,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:780,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:778,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_async.rs:786,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_async.rs:787,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:787,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_async.rs:788,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:788,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:790,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:788,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 794
      start: 770
    functionDepth: 9
    functionLinenumber: 770
    functionLinenumberEnd: 794
    functionName: basic_async::scan_with_options_works
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - impl AsyncCommands::append
    - Self::collect
    - scan_options::<String>
    - Self::with_count
    - unwrap
    - futures_time::time::Duration::from_millis
    - Self::with_pattern
    - ScanOptions::default
    - timeout
    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:801,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:801,1
    - Dst: scan_match::<&str, String>
      Src: /src/redis-rs/redis/tests/test_async.rs:803,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:803,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_async.rs:805,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:804,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:808,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:804,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 811
      start: 799
    functionDepth: 13
    functionLinenumber: 799
    functionLinenumberEnd: 811
    functionName: basic_async::issue_stream_blocks
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - impl AsyncCommands::append
    - Self::collect
    - unwrap
    - futures_time::time::Duration::from_millis
    - scan_match::<&str, String>
    - timeout
    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:817,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_async.rs:817,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_async.rs:818,1
    - Dst: impl AsyncCommands::set
      Src: /src/redis-rs/redis/tests/test_async.rs:820,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:820,1
    - Dst: impl AsyncCommands::scan
      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: map
      Src: /src/redis-rs/redis/tests/test_async.rs:824,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_async.rs:824,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_async.rs:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 828
      start: 816
    functionDepth: 9
    functionLinenumber: 816
    functionLinenumberEnd: 828
    functionName: basic_async::issue_async_commands_scan_broken
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - collect
    - map
    - impl AsyncCommands::set
    - unwrap
    - impl AsyncCommands::scan
    - sort
    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:837,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:839,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:839,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:840,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:840,1
    - Dst: on_message
      Src: /src/redis-rs/redis/tests/test_async.rs:841,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:842,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:842,1
    - Dst: publish
      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:847,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:847,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:851,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:851,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:851,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:851,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 855
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 855
    functionName: basic_async::pub_sub_subscription
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - TestContext::async_connection
    - publish
    - next
    - unwrap
    - get_payload
    - TestContext::async_pubsub
    - subscribe
    - on_message
    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:859,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:861,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:861,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:862,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:862,1
    - Dst: on_message
      Src: /src/redis-rs/redis/tests/test_async.rs:866,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:867,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:867,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:868,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:868,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:870,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:870,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:870,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:870,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:873,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:873,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:874,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:874,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:874,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:874,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 876
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 876
    functionName: basic_async::pub_sub_subscription_to_multiple_channels
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - TestContext::async_connection
    - publish
    - next
    - unwrap
    - get_payload
    - TestContext::async_pubsub
    - subscribe
    - on_message
    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:903,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_async.rs:903,1
    - Dst: impl AsyncCommands::set
      Src: /src/redis-rs/redis/tests/test_async.rs:908,1
    - Dst: '&str::as_bytes'
      Src: /src/redis-rs/redis/tests/test_async.rs:908,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:908,1
    - Dst: impl AsyncCommands::scan
      Src: /src/redis-rs/redis/tests/test_async.rs:912,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:912,1
    - Dst: next_item
      Src: /src/redis-rs/redis/tests/test_async.rs:917,1
    - Dst: is_some
      Src: /src/redis-rs/redis/tests/test_async.rs:923,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_async.rs:926,1
    - Dst: PathBuf::kind
      Src: /src/redis-rs/redis/tests/test_async.rs:926,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 58
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 936
      start: 881
    functionDepth: 9
    functionLinenumber: 881
    functionLinenumberEnd: 936
    functionName: basic_async::issue_async_commands_scan_finishing_prematurely
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&str::as_bytes'
    - collect
    - Some
    - map
    - is_some
    - impl AsyncCommands::set
    - unwrap
    - impl AsyncCommands::scan
    - PathBuf::kind
    - next_item
    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:942,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:944,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:944,1
    - Dst: subscribe
      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: unsubscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:946,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:946,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:948,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:948,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:949,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:949,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:949,1
    - Dst: query_async
      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
      Src: /src/redis-rs/redis/tests/test_async.rs:955,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:955,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 957
      start: 939
    functionDepth: 3
    functionLinenumber: 939
    functionLinenumberEnd: 957
    functionName: basic_async::pub_sub_unsubscription
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - TestContext::async_connection
    - redis::cmd
    - unsubscribe
    - redis::Cmd::arg
    - unwrap
    - get
    - query_async
    - TestContext::async_pubsub
    - subscribe
    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:961,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:963,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:963,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:963,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:964,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:964,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:966,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:966,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:969,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:969,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:973,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:973,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:973,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:973,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 977
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 977
    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:
    - TestContext::new
    - split
    - TestContext::async_connection
    - publish
    - next
    - unwrap
    - get_payload
    - TestContext::async_pubsub
    - subscribe
    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:981,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:983,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:983,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:983,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:984,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:984,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:986,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:986,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:991,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:991,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:994,1
    - Dst: ping
      Src: /src/redis-rs/redis/tests/test_async.rs:995,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:995,1
    - Dst: ping
      Src: /src/redis-rs/redis/tests/test_async.rs:998,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:998,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1002,1
    - Dst: ping_message
      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: ping_message
      Src: /src/redis-rs/redis/tests/test_async.rs:1006,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1006,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:1011,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1011,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:1011,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1011,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1017,1
    - Dst: ping_message::<()>
      Src: /src/redis-rs/redis/tests/test_async.rs:1018,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1018,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 980
    functionDepth: 5
    functionLinenumber: 980
    functionLinenumberEnd: 1020
    functionName: basic_async::can_send_ping_on_split_pubsub
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - split
    - TestContext::async_connection
    - publish
    - drop
    - unwrap_err
    - next
    - supports_resp3
    - ping_message
    - unwrap
    - get_payload
    - TestContext::async_pubsub
    - ping_message::<()>
    - subscribe
    - ping
    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:1024,1
    - Dst: TestContext::async_pubsub
      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: split
      Src: /src/redis-rs/redis/tests/test_async.rs:1026,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1027,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1027,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1029,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1029,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1030,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1033,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1033,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:1037,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1037,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:1037,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1037,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1023
    functionDepth: 5
    functionLinenumber: 1023
    functionLinenumberEnd: 1041
    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:
    - TestContext::new
    - split
    - TestContext::async_connection
    - publish
    - drop
    - next
    - unwrap
    - get_payload
    - TestContext::async_pubsub
    - subscribe
    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:1045,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1047,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1047,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1048,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1048,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1050,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1050,1
    - Dst: into_on_message
      Src: /src/redis-rs/redis/tests/test_async.rs:1051,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1053,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_async.rs:1053,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1053,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1056,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1056,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:1060,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1060,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:1060,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1060,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1064
    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:
    - TestContext::new
    - TestContext::async_connection
    - into
    - into_on_message
    - publish
    - Duration::from_secs
    - next
    - unwrap
    - get_payload
    - TestContext::async_pubsub
    - subscribe
    - sleep
    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:1068,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1070,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1070,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:1070,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1067
    functionDepth: 5
    functionLinenumber: 1067
    functionLinenumberEnd: 1074
    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:
    - TestContext::new
    - split
    - drop
    - unwrap
    - 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:1080,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1082,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1082,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1083,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1083,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1084,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1086,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1086,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1090,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1090,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1090,1
    - Dst: query_async
      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: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1096,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1096,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1101,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1101,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1077
    functionDepth: 5
    functionLinenumber: 1077
    functionLinenumberEnd: 1104
    functionName: basic_async::automatic_unsubscription
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - TestContext::async_connection
    - into
    - redis::cmd
    - redis::Cmd::arg
    - Duration::from_millis
    - drop
    - unwrap
    - get
    - query_async
    - TestContext::async_pubsub
    - subscribe
    - sleep
    linkageType: ''
    returnType: void
    signature: async fn automatic_unsubscription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1110,1
    - Dst: TestContext::async_pubsub
      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: split
      Src: /src/redis-rs/redis/tests/test_async.rs:1112,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1113,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1113,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1114,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1114,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1115,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1115,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1115,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1117,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1117,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1117,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1117,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1117,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1123,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1123,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1126,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1130,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1130,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1130,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1130,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1130,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1136,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1136,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1141,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1141,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1141,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1146,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1146,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1107
    functionDepth: 5
    functionLinenumber: 1107
    functionLinenumberEnd: 1148
    functionName: basic_async::automatic_unsubscription_on_split
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - split
    - TestContext::async_connection
    - into
    - redis::cmd
    - '&mut Cmd::arg'
    - redis::Cmd::arg
    - Duration::from_millis
    - drop
    - unwrap_err
    - unwrap
    - get
    - query_async
    - TestContext::async_pubsub
    - subscribe
    - sleep
    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:1152,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1152,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:1154,1
    - Dst: redis::Pipeline::get
      Src: /src/redis-rs/redis/tests/test_async.rs:1154,1
    - Dst: llen
      Src: /src/redis-rs/redis/tests/test_async.rs:1154,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1154,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1154,1
    - Dst: RedisResult::lrange
      Src: /src/redis-rs/redis/tests/test_async.rs:1160,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - conn
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 1163
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1163
    functionName: basic_async::pipe_errors_do_not_affect_subsequent_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - exec_async
    - llen
    - unwrap
    - RedisResult::lrange
    - lpush::<&str, &str, ()>
    - unwrap_err
    - redis::Pipeline::get
    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:1167,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1168,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1172,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1173,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1173,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1174,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1174,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1179,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1179,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1180,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1180,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1182,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1182,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1185,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1185,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1187,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1187,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1189,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1189,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1191,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1191,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1166
    functionDepth: 1
    functionLinenumber: 1166
    functionLinenumberEnd: 1193
    functionName: basic_async::multiplexed_pub_sub_subscribe_on_multiple_channels
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::set_push_sender
    - TestContext::async_connection
    - tokio::sync::mpsc::unbounded_channel
    - publish
    - redis::AsyncConnectionConfig::new
    - supports_resp3
    - recv
    - unwrap
    - get_multiplexed_async_connection_with_config
    - RedisResult::subscribe
    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:1199,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1199,1
    - Dst: RedisResult::req_packed_commands
      Src: /src/redis-rs/redis/tests/test_async.rs:1201,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:1203,1
    - Dst: redis::Pipeline::get
      Src: /src/redis-rs/redis/tests/test_async.rs:1203,1
    - Dst: llen
      Src: /src/redis-rs/redis/tests/test_async.rs:1203,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - conn
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 1214
      start: 1196
    functionDepth: 3
    functionLinenumber: 1196
    functionLinenumberEnd: 1214
    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::pipe
    - llen
    - unwrap
    - lpush::<&str, &str, ()>
    - RedisResult::req_packed_commands
    - redis::Pipeline::get
    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:1218,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:1219,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1219,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1220,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1220,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1221,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1221,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1223,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1224,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1224,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1225,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1225,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_async.rs:1230,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1231,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1231,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1231,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1232,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1232,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1235,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1235,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1237,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1238,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1237,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1243,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1243,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1256,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1257,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1256,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1260,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1260,1
    - Dst: RedisResult::unsubscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1271,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1271,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1271,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1272,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1272,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1274,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1275,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1274,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1279,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1279,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1279,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1217
    functionDepth: 9
    functionLinenumber: 1217
    functionLinenumberEnd: 1281
    functionName: basic_async::pub_sub_multiple
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - connection_info
    - '&str::clone'
    - redis::AsyncConnectionConfig::new
    - recv
    - unwrap
    - RedisResult::unwrap
    - sleep
    - RedisResult::subscribe
    - Self::set_push_sender
    - TestContext::async_connection
    - into
    - tokio::sync::mpsc::unbounded_channel
    - publish
    - redis::Client::open
    - '&str::to_string'
    - set_redis_settings
    - Self::set_protocol
    - Duration::from_millis
    - RedisConnectionInfo::default
    - get_multiplexed_async_connection_with_config
    - RedisResult::unsubscribe
    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:1285,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1285,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1288,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1289,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1289,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1284
    functionDepth: 2
    functionLinenumber: 1284
    functionLinenumberEnd: 1297
    functionName: basic_async::pub_sub_requires_resp3
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - TestContext::async_connection
    - use_protocol
    - unwrap
    - ProtocolVersion::supports_resp3
    - RedisResult::subscribe
    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:1301,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:1302,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1302,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1303,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1303,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1304,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1304,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1306,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1307,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1307,1
    - Dst: get_multiplexed_async_connection_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: RedisResult::set
      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: kill_client_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1315,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1300
    functionDepth: 9
    functionLinenumber: 1300
    functionLinenumberEnd: 1318
    functionName: basic_async::push_sender_send_on_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::set_push_sender
    - connection_info
    - tokio::sync::mpsc::unbounded_channel
    - Self::set_protocol
    - redis::Client::open
    - redis::AsyncConnectionConfig::new
    - RedisResult::set
    - unwrap
    - RedisConnectionInfo::default
    - kill_client_async
    - RedisResult::unwrap
    - set_redis_settings
    - get_multiplexed_async_connection_with_config
    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:1323,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1324,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1327,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1329,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1330,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1330,1
    - Dst: Self::set_automatic_resubscription
      Src: /src/redis-rs/redis/tests/test_async.rs:1330,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1330,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1335,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1335,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1340,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1340,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1344,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1344,1
    - Dst: unsubscribe
      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:1347,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1347,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1353,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1353,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1359,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1359,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1365,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1365,1
    - Dst: recv
      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: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1378,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1378,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1379,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1382,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1382,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1382,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1383,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1383,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1385,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1387,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1387,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1390,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1390,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1399,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1399,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1406,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1406,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1407,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1407,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1409,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1409,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1420,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1420,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1421,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1421,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1422,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1422,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 153
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1322
    functionDepth: 5
    functionLinenumber: 1322
    functionLinenumberEnd: 1435
    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
    - drop
    - supports_resp3
    - recv
    - unwrap
    - get_connection_manager_with_config
    - subscribe
    - sleep
    - Self::set_push_sender
    - Self::set_automatic_resubscription
    - into
    - tokio::sync::mpsc::unbounded_channel
    - publish
    - redis::aio::ConnectionManagerConfig::new
    - Self::set_max_delay
    - Self::async_connection
    - TestContext::new_with_addr
    - unsubscribe
    - Duration::from_millis
    - client_addr
    - clone
    - psubscribe
    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:1444,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:1444,1
    - Dst: '&mut Pipeline::cmd'
      Src: /src/redis-rs/redis/tests/test_async.rs:1444,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1444,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1444,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1444,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1444,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1444,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:1444,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - conn
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 1465
      start: 1439
    functionDepth: 2
    functionLinenumber: 1439
    functionLinenumberEnd: 1465
    functionName: basic_async::async_basic_pipe_with_parsing_error
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - redis::Cmd::arg
    - '&mut Pipeline::cmd'
    - redis::Pipeline::atomic
    - expect_err
    - "atomic()\n            .cmd(\"EVALSHA\")\n            .arg(\"foobar\")\n   \
      \         .arg(0)\n            .cmd(\"EVALSHA\")\n            .arg(\"foobar\"\
      )\n            .arg(0)\n            .query_async::<((), ())>"
    - Cmd::arg
    - cmd
    - 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:1470,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1471,1
    - Dst: Self::set_exponent_base
      Src: /src/redis-rs/redis/tests/test_async.rs:1471,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1471,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1475,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis/tests/test_async.rs:1475,1
    - Dst: tempdir
      Src: /src/redis-rs/redis/tests/test_async.rs:1475,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_async.rs:1475,1
    - Dst: redis_test::utils::build_keys_and_certs_for_tls
      Src: /src/redis-rs/redis/tests/test_async.rs:1479,1
    - Dst: TestContext::with_tls
      Src: /src/redis-rs/redis/tests/test_async.rs:1481,1
    - Dst: TlsFilePaths::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1481,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1484,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1485,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1486,1
    - Dst: redis::aio::ConnectionManager::new_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1489,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1489,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1489,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1492,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1492,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1493,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:1494,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1497,1
    - Dst: redis_test::server::RedisServer::new_with_addr_and_modules
      Src: /src/redis-rs/redis/tests/test_async.rs:1501,1
    - Dst: set::<_, _, Value>
      Src: /src/redis-rs/redis/tests/test_async.rs:1504,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1505,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1505,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1505,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1509,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1469
    functionDepth: 9
    functionLinenumber: 1469
    functionLinenumberEnd: 1515
    functionName: basic_async::connection_manager_reconnect_after_delay
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - drop
    - supports_resp3
    - unwrap
    - redis_test::server::RedisServer::new_with_addr_and_modules
    - tempfile::Builder::new
    - RedisResult::prefix
    - TlsFilePaths::clone
    - set
    - sleep
    - Self::set_push_sender
    - set::<_, _, Value>
    - redis_test::utils::build_keys_and_certs_for_tls
    - expect
    - ProtocolVersion::supports_resp3
    - redis::aio::ConnectionManager::new_with_config
    - into
    - tokio::sync::mpsc::unbounded_channel
    - TestContext::with_tls
    - Self::set_exponent_base
    - redis::aio::ConnectionManagerConfig::new
    - Self::set_max_delay
    - tempdir
    - Duration::from_millis
    - clone
    - client_addr
    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:1520,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1521,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1525,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1526,1
    - Dst: Self::set_exponent_base
      Src: /src/redis-rs/redis/tests/test_async.rs:1526,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1526,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1530,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1530,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1536,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1536,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1537,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1538,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1540,1
    - Dst: Duration::from_secs_f32
      Src: /src/redis-rs/redis/tests/test_async.rs:1540,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1519
    functionDepth: 5
    functionLinenumber: 1519
    functionLinenumberEnd: 1543
    functionName: basic_async::manager_should_reconnect_without_actions_if_resp3_is_set
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - TestContext::new_with_addr
    - into
    - Duration::from_secs_f32
    - Duration::from_millis
    - Self::set_exponent_base
    - drop
    - redis::aio::ConnectionManagerConfig::new
    - supports_resp3
    - client_addr
    - unwrap
    - clone
    - Self::set_max_delay
    - get_connection_manager_with_config
    - sleep
    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:1548,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:1549,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1549,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1550,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1550,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1551,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1551,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1556,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1557,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1556,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1560,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1560,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1560,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1560,1
    - Dst: RedisResult::lines
      Src: /src/redis-rs/redis/tests/test_async.rs:1566,1
    - Dst: lines().collect::<Vec<_>>
      Src: /src/redis-rs/redis/tests/test_async.rs:1566,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_async.rs:1566,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1569,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1570,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1569,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1573,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1573,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1573,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1573,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1547
    functionDepth: 9
    functionLinenumber: 1547
    functionLinenumberEnd: 1584
    functionName: basic_async::manager_should_completely_disconnect_when_drop
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - lines().collect::<Vec<_>>
    - connection_info
    - Self::set_protocol
    - Cmd::arg
    - redis::Client::open
    - redis::aio::ConnectionManagerConfig::new
    - unwrap
    - RedisConnectionInfo::default
    - RedisResult::lines
    - RedisResult::unwrap
    - get_connection_manager_with_config
    - cmd
    - set_redis_settings
    - '&mut Cmd::query_async'
    - len
    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:1590,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1591,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1595,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1597,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1598,1
    - Dst: Self::set_exponent_base
      Src: /src/redis-rs/redis/tests/test_async.rs:1598,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1598,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1598,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1603,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1603,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1609,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1609,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1611,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1612,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1612,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1614,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1614,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1620,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1621,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1621,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1623,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1625,1
    - Dst: Duration::from_secs_f32
      Src: /src/redis-rs/redis/tests/test_async.rs:1625,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1625,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1588
    functionDepth: 5
    functionLinenumber: 1588
    functionLinenumberEnd: 1628
    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:
    - TestContext::new
    - drop
    - supports_resp3
    - recv
    - unwrap
    - get_connection_manager_with_config
    - sleep
    - Self::set_push_sender
    - into
    - tokio::sync::mpsc::unbounded_channel
    - Self::set_exponent_base
    - redis::aio::ConnectionManagerConfig::new
    - Self::set_max_delay
    - ConnectionAddr::clone
    - TestContext::new_with_addr
    - Duration::from_secs_f32
    - Duration::from_millis
    - client_addr
    - clone
    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:1640,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1640,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1640,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1640,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1642,1
    - Dst: RedisResult::as_bytes
      Src: /src/redis-rs/redis/tests/test_async.rs:1642,1
    - Dst: windows
      Src: /src/redis-rs/redis/tests/test_async.rs:1642,1
    - Dst: filter
      Src: /src/redis-rs/redis/tests/test_async.rs:1642,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_async.rs:1642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut impl redis::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 1647
      start: 1638
    functionDepth: 1
    functionLinenumber: 1638
    functionLinenumberEnd: 1647
    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:
    - filter
    - windows
    - RedisResult::as_bytes
    - count
    - unwrap
    - Cmd::arg
    - cmd
    - '&mut Cmd::query_async'
    - Ok
    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:1632,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1634,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1634,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1635,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1635,1
    - Dst: set_response_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:1636,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1636,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1651,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1651,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1651,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1651,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1657,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1660,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1662,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1662,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1662,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1631
    functionDepth: 5
    functionLinenumber: 1631
    functionLinenumberEnd: 1665
    functionName: basic_async::multiplexed_connection_kills_connection_on_drop_even_when_blocking
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - TestContext::async_connection
    - into
    - Duration::from_millis
    - cmd
    - drop
    - exec_async
    - unwrap
    - Cmd::arg
    - set_response_timeout
    - unwrap_err
    - sleep
    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:1669,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1671,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1671,1
    - Dst: get_async_monitor
      Src: /src/redis-rs/redis/tests/test_async.rs:1672,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1672,1
    - Dst: into_on_message
      Src: /src/redis-rs/redis/tests/test_async.rs:1673,1
    - Dst: RedisResult::set
      Src: /src/redis-rs/redis/tests/test_async.rs:1675,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1675,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:1677,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1677,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1680,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1668
    functionDepth: 9
    functionLinenumber: 1668
    functionLinenumberEnd: 1683
    functionName: basic_async::monitor
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - TestContext::async_connection
    - into_on_message
    - drop
    - next
    - RedisResult::set
    - unwrap
    - get_async_monitor
    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:1693,1
    - Dst: build_single_client
      Src: /src/redis-rs/redis/tests/test_async.rs:1696,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1696,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1696,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1698,1
    - Dst: block_on_all
      Src: /src/redis-rs/redis/tests/test_async.rs:1699,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1701,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1703,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1703,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1703,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1703,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1703,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1709,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1709,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1709,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - RuntimeType
    constantsTouched: []
    func_position:
      end: 1714
      start: 1692
    functionDepth: 11
    functionLinenumber: 1692
    functionLinenumberEnd: 1714
    functionName: basic_async::test_should_connect_mtls
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - connection_info
    - redis::cmd
    - TestContext::new_with_mtls
    - redis::Cmd::arg
    - build_single_client
    - block_on_all
    - exec_async
    - get_multiplexed_async_connection
    - unwrap
    - RedisResult::unwrap
    - '&mut Cmd::query_async'
    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:1720,1
    - Dst: build_single_client
      Src: /src/redis-rs/redis/tests/test_async.rs:1723,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1723,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1723,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1725,1
    - Dst: block_on_all
      Src: /src/redis-rs/redis/tests/test_async.rs:1726,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1729,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1729,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1729,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1729,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1729,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1735,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1735,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1735,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1743,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1743,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1745,1
    - Dst: is_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1752,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 54
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - RuntimeType
    constantsTouched: []
    func_position:
      end: 1759
      start: 1719
    functionDepth: 11
    functionLinenumber: 1719
    functionLinenumberEnd: 1759
    functionName: basic_async::test_should_not_connect_if_tls_active
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - connection_info
    - redis::cmd
    - TestContext::new_with_mtls
    - redis::Cmd::arg
    - build_single_client
    - is_err
    - block_on_all
    - exec_async
    - is_ok
    - get_multiplexed_async_connection
    - unwrap
    - addr
    - RedisResult::unwrap
    - '&mut Cmd::query_async'
    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:1765,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:1766,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1766,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1767,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1767,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1768,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1768,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1770,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1771,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1771,1
    - Dst: redis::aio::ConnectionManager::new_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1772,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1772,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/tests/test_async.rs:1775,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1776,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1776,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1776,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1775,1
    - Dst: build_simple_pipeline_for_invalidation
      Src: /src/redis-rs/redis/tests/test_async.rs:1779,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1780,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1781,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1781,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1782,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1782,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1764
    functionDepth: 9
    functionLinenumber: 1764
    functionLinenumberEnd: 1792
    functionName: basic_async::resp3_pushes_connection_manager
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - connection_info
    - Pipeline::query_async
    - unwrap
    - get
    - RedisResult::unwrap
    - Cmd::arg
    - cmd
    - Self::set_push_sender
    - build_simple_pipeline_for_invalidation
    - try_recv
    - redis::aio::ConnectionManager::new_with_config
    - tokio::sync::mpsc::unbounded_channel
    - redis::Client::open
    - redis::aio::ConnectionManagerConfig::new
    - set_redis_settings
    - '&mut Cmd::arg'
    - send_packed_command
    - Self::set_protocol
    - RedisConnectionInfo::default
    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:1796,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1797,1
    - Dst: RedisConnectionInfo::set_db
      Src: /src/redis-rs/redis/tests/test_async.rs:1797,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1798,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1798,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1799,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1799,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1801,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1801,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1803,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1803,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1803,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1795
    functionDepth: 10
    functionLinenumber: 1795
    functionLinenumberEnd: 1809
    functionName: basic_async::select_db
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - connection_info
    - redis::cmd
    - redis::Cmd::arg
    - redis::Client::open
    - RedisConnectionInfo::set_db
    - get_multiplexed_async_connection
    - unwrap
    - RedisResult::unwrap
    - set_redis_settings
    - '&mut Cmd::query_async'
    - redis_settings
    linkageType: ''
    returnType: void
    signature: async fn select_db()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1813,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1814,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1818,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1819,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1819,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1820,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1820,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1825,1
    - Dst: TestContext::stop_server
      Src: /src/redis-rs/redis/tests/test_async.rs:1826,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1829,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1829,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1829,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1812
    functionDepth: 5
    functionLinenumber: 1812
    functionLinenumberEnd: 1832
    functionName: basic_async::multiplexed_connection_send_single_disconnect_on_connection_failure
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::set_push_sender
    - into
    - tokio::sync::mpsc::unbounded_channel
    - TestContext::stop_server
    - Duration::from_millis
    - drop
    - redis::AsyncConnectionConfig::new
    - supports_resp3
    - unwrap
    - get_multiplexed_async_connection_with_config
    - sleep
    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:1836,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1837,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1837,1
    - Dst: redis::Pipeline::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1839,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_async.rs:1839,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1839,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1846,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_async.rs:1846,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1846,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1835
    functionDepth: 10
    functionLinenumber: 1835
    functionLinenumberEnd: 1852
    functionName: basic_async::fail_on_empty_command
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - TestContext::async_connection
    - query_async::<String>
    - unwrap
    - redis::Pipeline::new
    - unwrap_err
    - redis::Cmd::new
    linkageType: ''
    returnType: void
    signature: async fn fail_on_empty_command()
  - 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: 9
    functionLinenumber: 32
    functionLinenumberEnd: 94
    functionName: test_cmd_options
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::noack
    - Self::block
    - Self::with_justid
    - with_force
    - StreamReadOptions::default
    - Self::time
    - assert_args
    - Self::group
    - Self::count
    - StreamClaimOptions::default
    - Self::idle
    - retry
    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: 8
    functionLinenumber: 97
    functionLinenumberEnd: 164
    functionName: test_assorted_1
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::xadd
    - insert
    - redis::Connection::xadd_maxlen
    - redis::Connection::xlen
    - redis::Connection::xread
    - BTreeMap::new
    - redis::Connection::xrange_all
    - redis::Connection::xadd_map
    - unwrap
    - get
    - TestContext::connection
    - StreamMaxlen::Equals
    - xadd_keyrange
    - xadd
    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:
    - TestContext::new
    - redis::Connection::xgroup_create
    - redis::Connection::xinfo_stream
    - unwrap
    - TestContext::connection
    - redis::Connection::xinfo_groups
    - xadd
    linkageType: ''
    returnType: void
    signature: fn test_xgroup_create()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:213,1
    - Dst: 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:
    - TestContext::new
    - redis::Connection::xgroup_create
    - redis::Connection::xinfo_stream
    - unwrap
    - redis::Connection::xgroup_createconsumer
    - TestContext::connection
    - redis::Connection::xinfo_consumers
    - redis::Connection::xinfo_groups
    - xadd
    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: 9
    functionLinenumber: 265
    functionLinenumberEnd: 406
    functionName: test_assorted_2
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::xadd
    - redis::Connection::xpending
    - redis::Connection::xread_options
    - assert_stream_pending_data
    - xadd
    - StreamReadOptions::default
    - redis::Connection::xpending_count
    - unwrap
    - TestContext::connection
    - Self::group
    - redis::Connection::xpending_consumer_count
    - redis::Connection::xinfo_consumers
    - redis::Connection::xinfo_groups
    - redis::Connection::xgroup_create_mkstream
    - redis::Connection::xack
    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: 8
    functionLinenumber: 416
    functionLinenumberEnd: 434
    functionName: test_xadd_maxlen_map
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - insert
    - redis::Connection::xadd_maxlen_map
    - redis::Connection::xlen
    - BTreeMap::new
    - redis::Connection::xrange_all
    - unwrap
    - TestContext::connection
    - StreamMaxlen::Equals
    - to_string
    linkageType: ''
    returnType: void
    signature: fn test_xadd_maxlen_map()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Connection::del'
      Src: /src/redis-rs/redis/tests/test_streams.rs:458,1
    - Dst: '&mut Connection::xadd_options'
      Src: /src/redis-rs/redis/tests/test_streams.rs:461,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 468
      start: 457
    functionDepth: 9
    functionLinenumber: 457
    functionLinenumberEnd: 468
    functionName: t::e::s::t::_::x::a::d::d::_::o::p::t::i::o::n::s::setup_stream
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - '&mut Connection::xadd_options'
    - '&mut Connection::del'
    - StreamAddOptions::default
    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: 9
    functionLinenumber: 437
    functionLinenumberEnd: 509
    functionName: test_xadd_options
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - StreamTrimStrategy::maxlen
    - insert
    - StreamAddOptions::default
    - BTreeMap::new
    - StreamTrimStrategy::minid
    - Self::nomkstream
    - redis::Connection::xinfo_stream
    - redis::Connection::xadd_options
    - setup_stream
    - unwrap
    - TestContext::connection
    - Self::trim
    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: 9
    functionLinenumber: 512
    functionLinenumberEnd: 546
    functionName: test_xread_options_deleted_pel_entry
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::xadd_maxlen
    - redis::Connection::xread_options
    - StreamReadOptions::default
    - unwrap
    - TestContext::connection
    - StreamMaxlen::Equals
    - Self::group
    - redis::Connection::xgroup_create_mkstream
    linkageType: ''
    returnType: void
    signature: fn test_xread_options_deleted_pel_entry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Connection::flushall'
      Src: /src/redis-rs/redis/tests/test_streams.rs:549,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:549,1
    - Dst: '&mut Connection::xgroup_create_mkstream'
      Src: /src/redis-rs/redis/tests/test_streams.rs:550,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:553,1
    - Dst: '&mut Connection::xread_options'
      Src: /src/redis-rs/redis/tests/test_streams.rs:555,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:559,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:559,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:555,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 565
      start: 548
    functionDepth: 9
    functionLinenumber: 548
    functionLinenumberEnd: 565
    functionName: create_group_add_and_read
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - '&mut Connection::xread_options'
    - StreamReadOptions::default
    - '&mut Connection::xgroup_create_mkstream'
    - unwrap
    - Self::group
    - '&mut Connection::flushall'
    - xadd_keyrange
    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: 10
    functionLinenumber: 568
    functionLinenumberEnd: 630
    functionName: test_xautoclaim
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - StreamAutoClaimOptions::default
    - redis::Connection::xautoclaim_options
    - Self::with_justid
    - Duration::from_millis
    - std::thread::sleep
    - clone
    - create_group_add_and_read
    - unwrap
    - TestContext::connection
    - Self::count
    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: 10
    functionLinenumber: 633
    functionLinenumberEnd: 718
    functionName: test_xclaim
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::xpending
    - slice::from_ref
    - Self::with_justid
    - Duration::from_millis
    - iter
    - redis::Connection::xclaim_options
    - std::thread::sleep
    - map
    - create_group_add_and_read
    - unwrap
    - Self::with_force
    - TestContext::connection
    - StreamClaimOptions::default
    - "keys[0]\n        .ids\n        .iter()\n        .map(|msg| &msg.id)\n     \
      \   .collect::<Vec<&String>>"
    - redis::Connection::xclaim
    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: 9
    functionLinenumber: 721
    functionLinenumberEnd: 793
    functionName: test_xclaim_last_id
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::xread_options
    - slice::from_ref
    - Self::with_justid
    - Duration::from_millis
    - StreamReadOptions::default
    - redis::Connection::xinfo_groups
    - std::thread::sleep
    - redis::Connection::xclaim_options
    - Self::with_lastid
    - unwrap
    - as_str
    - TestContext::connection
    - Self::count
    - Self::group
    - StreamClaimOptions::default
    - xadd_keyrange
    - redis::Connection::xgroup_create_mkstream
    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: 9
    functionLinenumber: 796
    functionLinenumberEnd: 894
    functionName: test_xreadgroup_with_claim_option
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - xpending
    - collect
    - Duration::from_millis
    - count
    - iter
    - StreamReadOptions::default
    - std::thread::sleep
    - map
    - clone
    - unwrap
    - run_test_if_version_supported
    - Self::group
    - connection
    - xread_options
    - claim
    - xadd_keyrange
    - xpending_count
    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: 9
    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:
    - collect
    - Duration::from_millis
    - count
    - iter
    - StreamReadOptions::default
    - std::thread::sleep
    - map
    - clone
    - unwrap
    - run_test_if_version_supported
    - Self::group
    - connection
    - xread_options
    - claim
    - xadd_keyrange
    - xpending_count
    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: 9
    functionLinenumber: 1028
    functionLinenumberEnd: 1100
    functionName: test_xreadgroup_claim_multiple_streams
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Duration::from_millis
    - count
    - StreamReadOptions::default
    - std::thread::sleep
    - unwrap
    - run_test_if_version_supported
    - xpending_consumer_count
    - Self::group
    - connection
    - xread_options
    - claim
    - xadd_keyrange
    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
    - redis::Connection::xdel
    - TestContext::connection
    - xadd
    linkageType: ''
    returnType: void
    signature: fn test_xdel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs: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: 9
    functionLinenumber: 1123
    functionLinenumberEnd: 1205
    functionName: test_xadd_options_deletion_policy_keepref
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - StreamTrimStrategy::maxlen
    - xgroup_create_mkstream
    - xinfo_stream
    - count
    - set_deletion_policy
    - StreamReadOptions::default
    - map
    - unwrap
    - Self::trim
    - flushdb
    - StreamAddOptions::default
    - run_test_if_version_supported
    - xpending_consumer_count
    - xadd
    - try_into
    - xadd_options
    - Self::group
    - xpending
    - connection
    - xread_options
    - len
    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: 9
    functionLinenumber: 1208
    functionLinenumberEnd: 1290
    functionName: test_xadd_options_deletion_policy_delref
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - StreamTrimStrategy::maxlen
    - xgroup_create_mkstream
    - xinfo_stream
    - count
    - set_deletion_policy
    - StreamReadOptions::default
    - map
    - unwrap
    - Self::trim
    - flushdb
    - StreamAddOptions::default
    - run_test_if_version_supported
    - xpending_consumer_count
    - xadd
    - try_into
    - xadd_options
    - Self::group
    - xpending
    - connection
    - xread_options
    - len
    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: 9
    functionLinenumber: 1293
    functionLinenumberEnd: 1378
    functionName: test_xadd_options_deletion_policy_acked
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - StreamTrimStrategy::maxlen
    - xgroup_create_mkstream
    - xinfo_stream
    - count
    - set_deletion_policy
    - StreamReadOptions::default
    - map
    - unwrap
    - Self::trim
    - flushdb
    - StreamAddOptions::default
    - run_test_if_version_supported
    - xpending_consumer_count
    - xadd
    - try_into
    - xadd_options
    - Self::group
    - xpending
    - connection
    - xread_options
    - len
    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: 9
    functionLinenumber: 1381
    functionLinenumberEnd: 1449
    functionName: test_xtrim_options_deletion_policy_keepref
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - xgroup_create_mkstream
    - xinfo_stream
    - count
    - StreamReadOptions::default
    - map
    - Self::set_deletion_policy
    - unwrap
    - flushdb
    - run_test_if_version_supported
    - xpending_consumer_count
    - xtrim_options
    - xadd
    - try_into
    - Self::group
    - xpending
    - StreamTrimOptions::minid
    - clone
    - connection
    - xread_options
    - len
    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: 9
    functionLinenumber: 1452
    functionLinenumberEnd: 1520
    functionName: test_xtrim_options_deletion_policy_delref
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - xgroup_create_mkstream
    - xinfo_stream
    - count
    - StreamReadOptions::default
    - map
    - Self::set_deletion_policy
    - unwrap
    - flushdb
    - run_test_if_version_supported
    - xpending_consumer_count
    - xtrim_options
    - xadd
    - try_into
    - Self::group
    - xpending
    - StreamTrimOptions::minid
    - clone
    - connection
    - xread_options
    - len
    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: 9
    functionLinenumber: 1523
    functionLinenumberEnd: 1591
    functionName: test_xtrim_options_deletion_policy_acked
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - xgroup_create_mkstream
    - xinfo_stream
    - count
    - StreamReadOptions::default
    - map
    - Self::set_deletion_policy
    - unwrap
    - flushdb
    - run_test_if_version_supported
    - xpending_consumer_count
    - xtrim_options
    - xadd
    - try_into
    - Self::group
    - xpending
    - StreamTrimOptions::minid
    - clone
    - connection
    - xread_options
    - len
    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: 9
    functionLinenumber: 1594
    functionLinenumberEnd: 1791
    functionName: test_xdel_ex
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - connection
    - xgroup_create_mkstream
    - xpending
    - xinfo_stream
    - count
    - StreamReadOptions::default
    - try_into
    - map
    - xdel_ex
    - unwrap
    - run_test_if_version_supported
    - as_str
    - Self::group
    - flushdb
    - xread_options
    - xack
    - xadd
    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: 9
    functionLinenumber: 1794
    functionLinenumberEnd: 2089
    functionName: test_xack_del
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - zip
    - xgroup_create_mkstream
    - xinfo_stream
    - count
    - RedisResult::iter
    - StreamReadOptions::default
    - iter
    - map
    - unwrap
    - flushdb
    - run_test_if_version_supported
    - xack_del
    - xadd
    - try_into
    - Self::group
    - xpending
    - clone
    - connection
    - xread_options
    - len
    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:
    - TestContext::new
    - TestContext::connection
    - StreamMaxlen::Equals
    - xadd_keyrange
    - redis::Connection::xtrim
    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:
    - TestContext::new
    - redis::Connection::xtrim_options
    - redis::Connection::xadd
    - StreamTrimOptions::minid
    - StreamTrimOptions::maxlen
    - TestContext::connection
    - redis::Connection::del
    - xadd_keyrange
    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: 9
    functionLinenumber: 2157
    functionLinenumberEnd: 2198
    functionName: test_xgroup
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::xgroup_delconsumer
    - redis::Connection::xread_options
    - redis::Connection::xgroup_create
    - StreamReadOptions::default
    - redis::Connection::xgroup_destroy
    - redis::Connection::xgroup_create_mkstream
    - unwrap
    - TestContext::connection
    - Self::group
    - xadd
    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:
    - TestContext::new
    - redis::Connection::xrange
    - redis::Connection::xrange_count
    - redis::Connection::xrange_all
    - unwrap
    - TestContext::connection
    - xadd
    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:
    - TestContext::new
    - redis::Connection::xrevrange
    - redis::Connection::xrevrange_count
    - unwrap
    - TestContext::connection
    - redis::Connection::xrevrange_all
    - xadd
    linkageType: ''
    returnType: void
    signature: fn test_xrevrange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs: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: 10
    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:
    - TestContext::new
    - StreamAutoClaimOptions::default
    - redis::Connection::xautoclaim_options
    - Duration::from_millis
    - redis::Connection::xdel
    - std::thread::sleep
    - TestContext::get_version
    - clone
    - create_group_add_and_read
    - unwrap
    - TestContext::connection
    - Self::count
    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: 10
    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:
    - TestContext::new
    - StreamAutoClaimOptions::default
    - redis::Connection::xautoclaim_options
    - insert
    - Default::default
    - Self::with_justid
    - Duration::from_millis
    - redis::Connection::xdel
    - std::mem::take
    - std::thread::sleep
    - TestContext::get_version
    - clone
    - create_group_add_and_read
    - unwrap
    - TestContext::connection
    - Self::count
    linkageType: ''
    returnType: void
    signature: fn test_xautoclaim_invalid_pel_entries_claiming_just_ids()
  - 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: 10
    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
    - call_once
    - String::is_err
    - env_logger::builder
    - is_test
    - filter_level
    - init
    linkageType: ''
    returnType: void
    signature: fn init_logger()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::env::var
      Src: /src/redis-rs/redis/tests/test_auth.rs:41,1
    - Dst: String::unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_auth.rs:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: entra_id_tests::get_redis_url
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - std::env::var
    - String::unwrap_or_else
    linkageType: ''
    returnType: String
    signature: fn get_redis_url() -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::env::var
      Src: /src/redis-rs/redis/tests/test_auth.rs:46,1
    - Dst: String::unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_auth.rs:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - var_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: entra_id_tests::get_env_var
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - std::env::var
    - String::unwrap_or_else
    linkageType: ''
    returnType: String
    signature: 'fn get_env_var(var_name: &str) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_or_init
      Src: /src/redis-rs/redis/tests/test_auth.rs:53,1
    - Dst: get_env_var
      Src: /src/redis-rs/redis/tests/test_auth.rs:54,1
    - Dst: String::split
      Src: /src/redis-rs/redis/tests/test_auth.rs:54,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_auth.rs:54,1
    - Dst: TlsFilePaths::trim
      Src: /src/redis-rs/redis/tests/test_auth.rs:56,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_auth.rs:56,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_auth.rs:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 9
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: entra_id_tests::get_redis_scopes
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::trim
    - collect
    - get_or_init
    - map
    - String::split
    - to_string
    - get_env_var
    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:
    - '&mut Cmd::arg'
    - redis::cmd
    - Self::set_credentials_provider
    - redis::Cmd::arg
    - start
    - Client::open
    - '&mut Cmd::query_async'
    - redis::AsyncConnectionConfig::new
    - RetryConfig::default
    - get_redis_url
    - exec_async
    - unwrap
    - RedisResult::unwrap
    - get_multiplexed_async_connection_with_config
    - init_logger
    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: 10
    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:
    - EntraIdCredentialsProvider::new_client_secret_with_scopes
    - '&''static Vec::clone'
    - get_redis_scopes
    - test_redis_connection
    - RedisResult::unwrap
    - get_env_var
    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: 10
    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:
    - '&''static Vec::clone'
    - EntraIdCredentialsProvider::new_client_certificate_with_scopes
    - get_redis_scopes
    - test_redis_connection
    - RedisResult::unwrap
    - encode
    - expect
    - get_env_var
    - fs::read
    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: 10
    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:
    - '&''static Vec::clone'
    - get_redis_scopes
    - test_redis_connection
    - EntraIdCredentialsProvider::new_system_assigned_managed_identity_with_scopes
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_system_assigned_managed_identity()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EntraIdCredentialsProvider::new_user_assigned_managed_identity_with_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs: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: 10
    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:
    - Default::default
    - EntraIdCredentialsProvider::new_user_assigned_managed_identity_with_scopes
    - '&''static Vec::clone'
    - Some
    - get_redis_scopes
    - test_redis_connection
    - RedisResult::unwrap
    - UserAssignedId::ObjectId
    - get_env_var
    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:63,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 70
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 70
    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:74,1
    - Dst: redis::parse_redis_url
      Src: /src/redis-rs/redis/tests/test_basic.rs:75,1
    - Dst: unwrap
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    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:82,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: basic::test_redis_url_fromstr
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - '&str::parse'
    linkageType: ''
    returnType: void
    signature: fn test_redis_url_fromstr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:87,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:88,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:90,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:90,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:90,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:90,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:90,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:95,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:95,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_basic.rs:95,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 104
    functionName: basic::test_args
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - '&mut Cmd::exec'
    - redis::cmd
    - redis::Cmd::arg
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_args()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:108,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:109,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:115,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:116,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:116,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:116,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:116,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:116,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:116,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:125,1
    - Dst: RedisConnectionInfo::set_password
      Src: /src/redis-rs/redis/tests/test_basic.rs:125,1
    - Dst: Self::set_username
      Src: /src/redis-rs/redis/tests/test_basic.rs:125,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:128,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:128,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:128,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:128,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:128,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:128,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:133,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:133,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:133,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 107
    functionDepth: 10
    functionLinenumber: 107
    functionLinenumberEnd: 135
    functionName: basic::test_can_authenticate_with_username_and_password
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - get_connection
    - connection_info
    - Self::set_username
    - '&mut Cmd::query'
    - RedisConnectionInfo::set_password
    - redis::Client::open
    - arg
    - Self::arg
    - unwrap
    - TestContext::connection
    - RedisResult::unwrap
    - Cmd::arg
    - cmd
    - set_redis_settings
    - redis::Cmd::new
    - redis_settings
    linkageType: ''
    returnType: void
    signature: fn test_can_authenticate_with_username_and_password()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:139,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:140,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:142,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:142,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:142,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:142,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:142,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:145,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:145,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:145,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:145,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 154
    functionName: basic::test_getset
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - redis::cmd
    - redis::Cmd::arg
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_getset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:159,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:160,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:163,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:163,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:163,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:163,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:163,1
    - Dst: redis::Connection::key_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:164,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:164,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:168,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:168,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:168,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:168,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:168,1
    - Dst: redis::Connection::key_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:173,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:173,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:177,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:177,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:177,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:177,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:177,1
    - Dst: redis::Connection::key_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:182,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:182,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:186,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:186,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:186,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:186,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:186,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:186,1
    - Dst: redis::Connection::key_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:192,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:192,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:196,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:196,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:196,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:196,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:196,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:196,1
    - Dst: redis::Connection::key_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:202,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 204
    functionName: basic::test_key_type
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - redis::cmd
    - redis::Cmd::arg
    - arg
    - redis::Connection::key_type
    - exec
    - unwrap
    - TestContext::connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_key_type()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:209,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:211,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:239,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:239,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:239,1
    - Dst: parse
      Src: /src/redis-rs/redis/tests/test_basic.rs:239,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 241
    functionName: basic::test_client_tracking_doesnt_block_execution
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - query
    - redis::Cmd::arg
    - parse
    - redis::Connection::get
    - arg
    - unwrap
    - redis::Pipeline::cmd
    - TestContext::connection
    - ignore
    - cmd
    - 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:245,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:246,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:248,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:248,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:248,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:248,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: basic::test_incr
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - redis::cmd
    - redis::Cmd::arg
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_incr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:254,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:255,1
    - Dst: redis::Connection::ping_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:257,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:257,1
    - Dst: redis::Connection::ping
      Src: /src/redis-rs/redis/tests/test_basic.rs:259,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 261
    functionName: basic::test_ping
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - unwrap
    - redis::Connection::ping_message
    - redis::Connection::ping
    - TestContext::connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_ping()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:265,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:266,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:268,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:268,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:268,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:268,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: basic::test_getdel
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - redis::cmd
    - redis::Cmd::arg
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_getdel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:280,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:281,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:283,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:283,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:283,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:283,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:283,1
    - Dst: redis::Commands::get_ex::<_, usize>
      Src: /src/redis-rs/redis/tests/test_basic.rs:291,1
    - Dst: Expiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:291,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:291,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:295,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:295,1
    - Dst: redis::Connection::get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:296,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:296,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:296,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:300,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:300,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:301,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:301,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:305,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:305,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:305,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:305,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:305,1
    - Dst: redis::Connection::get_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:312,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:312,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:312,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:316,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:316,1
    - Dst: redis::Connection::get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:317,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 319
    functionName: basic::test_getex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - redis::Connection::get_ex
    - redis::cmd
    - redis::Cmd::arg
    - Duration::from_millis
    - redis::Connection::get
    - redis::Connection::get_int
    - Duration::from_secs
    - Expiry::EX
    - unwrap
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    - redis::Commands::get_ex::<_, usize>
    - sleep
    linkageType: ''
    returnType: void
    signature: fn test_getex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:323,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:324,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:326,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_basic.rs:326,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 335
    functionName: basic::test_info
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::cmd
    - redis::Cmd::query
    - TestContext::connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_info()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:339,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:340,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:342,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:342,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:342,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:342,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:342,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:342,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:348,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:348,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:348,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:348,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:348,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:348,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:355,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:355,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:355,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:355,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:360,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:360,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:360,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 364
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 364
    functionName: basic::test_hash_ops
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - redis::cmd
    - '&mut Cmd::query'
    - redis::Cmd::arg
    - arg
    - unwrap
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_hash_ops()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:368,1
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:370,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:372,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:373,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:373,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:373,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:373,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:373,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:373,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:373,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:373,1
    - Dst: redis::Connection::hexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:382,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:382,1
    - Dst: redis::Connection::httl
      Src: /src/redis-rs/redis/tests/test_basic.rs:387,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:387,1
    - Dst: redis::Connection::hpttl
      Src: /src/redis-rs/redis/tests/test_basic.rs:392,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:392,1
    - Dst: redis::Connection::hexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:397,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:397,1
    - Dst: redis::Connection::hexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:403,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:403,1
    - Dst: redis::Connection::hpexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:409,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:409,1
    - Dst: redis::Connection::hpexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:415,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:415,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:421,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:421,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:421,1
    - Dst: as_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:421,1
    - Dst: redis::Connection::hexpire_at
      Src: /src/redis-rs/redis/tests/test_basic.rs:425,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:425,1
    - Dst: redis::Connection::hexpire_time
      Src: /src/redis-rs/redis/tests/test_basic.rs:435,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:435,1
    - Dst: redis::Connection::hpexpire_time
      Src: /src/redis-rs/redis/tests/test_basic.rs:437,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:437,1
    - Dst: redis::Connection::hpersist
      Src: /src/redis-rs/redis/tests/test_basic.rs:443,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:443,1
    - Dst: redis::Connection::hpttl
      Src: /src/redis-rs/redis/tests/test_basic.rs:445,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 121
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 449
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 449
    functionName: basic::test_hash_expiration
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::hpttl
    - redis::Connection::hpexpire_time
    - unwrap
    - as_secs
    - RedisResult::unwrap
    - redis::cmd
    - arg
    - run_test_if_version_supported
    - exec
    - redis::Connection::hexpire
    - redis::Connection::hpersist
    - redis::Connection::hexpire_at
    - redis::Connection::hpexpire
    - redis::Connection::httl
    - redis::Connection::hexpire_time
    - '&mut Cmd::arg'
    - redis::Cmd::arg
    - duration_since
    - TestContext::connection
    - SystemTime::now
    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:457,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:457,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: 463
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 463
    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:470,1
    - Dst: for_each
      Src: /src/redis-rs/redis/tests/test_basic.rs:470,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: 473
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 473
    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:484,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:485,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_basic.rs:495,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:498,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:498,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:503,1
    - Dst: Self::extend_from_slice
      Src: /src/redis-rs/redis/tests/test_basic.rs:525,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:528,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:528,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 547
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 547
    functionName: basic::test_hget_del
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - verify_fields_absence_from_hash
    - hgetall
    - Self::extend_from_slice
    - Vec::from
    - unwrap
    - run_test_if_version_supported
    - 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:561,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:562,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:606,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:613,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:613,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_basic.rs:615,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:617,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:617,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:622,1
    - Dst: redis::Commands::hget_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:640,1
    - Dst: Expiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:640,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:640,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_basic.rs:643,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:647,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:654,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:654,1
    - Dst: Self::extend_from_slice
      Src: /src/redis-rs/redis/tests/test_basic.rs:656,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:658,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:658,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 672
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 672
    functionName: basic::test_hget_ex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - verify_fields_absence_from_hash
    - Duration::from_millis
    - verify_exact_hash_fields_and_values
    - hgetall
    - Expiry::EX
    - len
    - Self::extend_from_slice
    - Vec::from
    - unwrap
    - run_test_if_version_supported
    - connection
    - redis::Commands::hget_ex
    - sleep
    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:680,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:681,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:686,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:707,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:707,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:707,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:747,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:747,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 752
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 752
    functionName: basic::test_hget_ex_field_expiration_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - duration_since
    - verify_exact_hash_fields_and_values
    - Duration::from_millis
    - unwrap
    - run_test_if_version_supported
    - connection
    - SystemTime::now
    - sleep
    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:775,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:776,1
    - Dst: generate_random_testing_hash_key
      Src: /src/redis-rs/redis/tests/test_basic.rs:778,1
    - Dst: HashFieldExpirationOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:781,1
    - Dst: Self::set_existence_check
      Src: /src/redis-rs/redis/tests/test_basic.rs:781,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:785,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:785,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:791,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:797,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:797,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:807,1
    - Dst: Self::set_existence_check
      Src: /src/redis-rs/redis/tests/test_basic.rs:811,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:813,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:813,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:823,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:827,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:831,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:831,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:842,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:842,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:857,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:857,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:857,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:861,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:861,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:871,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:885,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:885,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:888,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:888,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:899,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:899,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:915,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:915,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:916,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:916,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:916,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:920,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:920,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:930,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:943,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:943,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:947,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:947,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 167
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 953
      start: 774
    functionDepth: 9
    functionLinenumber: 774
    functionLinenumberEnd: 953
    functionName: basic::test_hset_ex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - verify_fields_absence_from_hash
    - generate_random_testing_hash_key
    - hset_ex
    - collect
    - verify_exact_hash_fields_and_values
    - HashFieldExpirationOptions::default
    - Self::set_existence_check
    - redis::Commands::hgetall
    - iter
    - Self::set_expiration
    - map
    - Duration::from_millis
    - hgetall
    - unwrap
    - run_test_if_version_supported
    - SetExpiry::EX
    - connection
    - sleep
    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:961,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:962,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:967,1
    - Dst: HashFieldExpirationOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:970,1
    - Dst: Self::set_existence_check
      Src: /src/redis-rs/redis/tests/test_basic.rs:970,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:970,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:972,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:974,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:974,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:979,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:979,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:980,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:980,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:985,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:985,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:985,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:988,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:988,1
    - Dst: as_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:988,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:989,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:989,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:994,1
    - Dst: SetExpiry::PXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:995,1
    - Dst: as_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:995,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:996,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:996,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:1001,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:1001,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:1002,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1002,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:1008,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:1009,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1009,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:1015,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 960
    functionDepth: 9
    functionLinenumber: 960
    functionLinenumberEnd: 1019
    functionName: basic::test_hsetex_field_expiration_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - hset_ex
    - Self::set_expiration
    - verify_exact_hash_fields_and_values
    - HashFieldExpirationOptions::default
    - Self::set_existence_check
    - SetExpiry::PX
    - duration_since
    - Duration::from_millis
    - unwrap
    - run_test_if_version_supported
    - SetExpiry::EX
    - as_secs
    - SetExpiry::PXAT
    - connection
    - as_millis
    - SystemTime::now
    - sleep
    - SetExpiry::EXAT
    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:1023,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1024,1
    - Dst: HashFieldExpirationOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1028,1
    - Dst: Self::set_existence_check
      Src: /src/redis-rs/redis/tests/test_basic.rs:1028,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:1028,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:1030,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:1033,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1033,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:1039,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:1039,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:1040,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1040,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:1045,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:1054,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:1054,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:1057,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1057,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1022
    functionDepth: 9
    functionLinenumber: 1022
    functionLinenumberEnd: 1066
    functionName: basic::test_hsetex_can_update_the_expiration_of_a_field_that_has_already_been_set_to_expire
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - verify_fields_absence_from_hash
    - hset_ex
    - Self::set_expiration
    - verify_exact_hash_fields_and_values
    - HashFieldExpirationOptions::default
    - Self::set_existence_check
    - Duration::from_millis
    - hgetall
    - unwrap
    - run_test_if_version_supported
    - SetExpiry::EX
    - connection
    - sleep
    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:1073,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1074,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1076,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1076,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1076,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1076,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1076,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1080,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1080,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1080,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1080,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1080,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1081,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1081,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1081,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1081,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1072
    functionDepth: 2
    functionLinenumber: 1072
    functionLinenumberEnd: 1083
    functionName: basic::test_unlink
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - redis::cmd
    - redis::Cmd::arg
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_unlink()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1087,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1088,1
    - Dst: redis::Commands::smembers
      Src: /src/redis-rs/redis/tests/test_basic.rs:1092,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1092,1
    - Dst: TlsFilePaths::sort_unstable
      Src: /src/redis-rs/redis/tests/test_basic.rs:1093,1
    - Dst: redis::Commands::smembers
      Src: /src/redis-rs/redis/tests/test_basic.rs:1097,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1097,1
    - Dst: redis::Commands::smembers
      Src: /src/redis-rs/redis/tests/test_basic.rs:1103,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1086
    functionDepth: 1
    functionLinenumber: 1086
    functionLinenumberEnd: 1108
    functionName: basic::test_set_ops
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Commands::smembers
    - TlsFilePaths::sort_unstable
    - unwrap
    - TestContext::connection
    linkageType: ''
    returnType: void
    signature: fn test_set_ops()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1112,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1113,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1117,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1117,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1117,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1117,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1117,1
    - Dst: TlsFilePaths::sort_unstable
      Src: /src/redis-rs/redis/tests/test_basic.rs:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1111
    functionDepth: 2
    functionLinenumber: 1111
    functionLinenumberEnd: 1126
    functionName: basic::test_scan
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - query
    - redis::cmd
    - redis::Cmd::arg
    - TlsFilePaths::sort_unstable
    - unwrap
    - TestContext::connection
    linkageType: ''
    returnType: void
    signature: fn test_scan()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1130,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1131,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1133,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1133,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1133,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1133,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1133,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1135,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1135,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1135,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1135,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1135,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1143,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1143,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1143,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/tests/test_basic.rs:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1148
    functionName: basic::test_optionals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - query
    - redis::cmd
    - '&mut Cmd::query'
    - redis::Cmd::arg
    - unwrap_or
    - unwrap
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_optionals()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1152,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1153,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1154,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1157,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1157,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1157,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1157,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1157,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_basic.rs:1158,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1161,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1161,1
    - Dst: '&mut Cmd::cursor_arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1161,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1161,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:1161,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1161,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:1168,1
    - Dst: RedisServer::remove
      Src: /src/redis-rs/redis/tests/test_basic.rs:1172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1151
    functionDepth: 8
    functionLinenumber: 1151
    functionLinenumberEnd: 1176
    functionName: basic::test_scanning
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - RedisServer::insert
    - Self::iter
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Cmd::cursor_arg'
    - map
    - HashSet::new
    - exec
    - unwrap
    - TestContext::connection
    - RedisResult::unwrap
    - '&mut Cmd::clone'
    - RedisServer::remove
    linkageType: ''
    returnType: void
    signature: fn test_scanning()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1182,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1183,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1187,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1187,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1187,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1187,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1187,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1195,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1195,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1195,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1195,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1195,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1203,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1204,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:1204,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1203,1
    - Dst: None::is_some
      Src: /src/redis-rs/redis/tests/test_basic.rs:1213,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:1217,1
    - Dst: kind
      Src: /src/redis-rs/redis/tests/test_basic.rs:1217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1179
    functionDepth: 9
    functionLinenumber: 1179
    functionLinenumberEnd: 1229
    functionName: basic::test_checked_scanning_error
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - redis::cmd
    - redis::Cmd::arg
    - Some
    - Self::with_count
    - unwrap
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    - scan_options::<String>
    - ScanOptions::default
    - None::is_some
    - kind
    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:1233,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1234,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1235,1
    - Dst: redis::Connection::hset
      Src: /src/redis-rs/redis/tests/test_basic.rs:1238,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1238,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_basic.rs:1241,1
    - Dst: hscan_match::<&str, &str, (String, usize)>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1245,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1245,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:1249,1
    - Dst: RedisServer::remove
      Src: /src/redis-rs/redis/tests/test_basic.rs:1252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1232
    functionDepth: 8
    functionLinenumber: 1232
    functionLinenumberEnd: 1256
    functionName: basic::test_filtered_scanning
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - RedisServer::insert
    - map
    - HashSet::new
    - unwrap
    - TestContext::connection
    - hscan_match::<&str, &str, (String, usize)>
    - redis::Connection::hset
    - RedisServer::remove
    linkageType: ''
    returnType: void
    signature: fn test_filtered_scanning()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1260,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1261,1
    - Dst: redis::Connection::append
      Src: /src/redis-rs/redis/tests/test_basic.rs:1263,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1263,1
    - Dst: redis::Connection::append
      Src: /src/redis-rs/redis/tests/test_basic.rs:1264,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1264,1
    - Dst: redis::Connection::hset
      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: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1269,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:1269,1
    - Dst: Self::with_pattern
      Src: /src/redis-rs/redis/tests/test_basic.rs:1269,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1270,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1270,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1271,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1274,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1275,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1275,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1276,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1279,1
    - Dst: Self::with_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:1279,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1280,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1280,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1281,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1284,1
    - Dst: Self::with_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:1284,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1285,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1285,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1259
    functionDepth: 9
    functionLinenumber: 1259
    functionLinenumberEnd: 1288
    functionName: basic::test_scan_with_options_works
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::append
    - Self::with_type
    - Self::collect
    - scan_options::<String>
    - Self::with_count
    - unwrap
    - TestContext::connection
    - Self::with_pattern
    - redis::Connection::hset
    - ScanOptions::default
    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:1292,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1293,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1295,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1295,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1295,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1295,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1295,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1295,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1295,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1295,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1295,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1295,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1295,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1295,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1291
    functionDepth: 2
    functionLinenumber: 1291
    functionLinenumberEnd: 1311
    functionName: basic::test_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - query
    - redis::Cmd::arg
    - arg
    - unwrap
    - redis::Pipeline::cmd
    - TestContext::connection
    - ignore
    - cmd
    - 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:1315,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1316,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1318,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1318,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1318,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1318,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1318,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1323,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1323,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1323,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1323,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1323,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1329,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1329,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1329,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1329,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1329,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1335,1
    - Dst: redis::Pipeline::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1335,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1335,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1335,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1335,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1346,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1346,1
    - Dst: "arg(\"x\")\n            .query::<String>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1346,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1314
    functionDepth: 2
    functionLinenumber: 1314
    functionLinenumberEnd: 1351
    functionName: basic::test_pipeline_with_err
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - redis::cmd
    - redis::Cmd::arg
    - "arg(\"x\")\n            .query::<String>"
    - get
    - exec
    - unwrap
    - TestContext::connection
    - RedisResult::unwrap
    - ignore
    - redis::Pipeline::set
    - redis::pipe
    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:1355,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1356,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1357,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1358,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1358,1
    - Dst: hset
      Src: /src/redis-rs/redis/tests/test_basic.rs:1358,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1358,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1358,1
    - Dst: Pipeline::exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1364,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:1365,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_basic.rs:1365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1354
    functionDepth: 9
    functionLinenumber: 1354
    functionLinenumberEnd: 1370
    functionName: basic::test_pipeline_returns_server_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - hset
    - Pipeline::set
    - get
    - TestContext::connection
    - ignore
    - Pipeline::exec
    - to_string
    - unwrap_err
    - redis::pipe
    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:1374,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1375,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1377,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1377,1
    - Dst: redis::Cmd::ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1377,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1377,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1373
    functionDepth: 2
    functionLinenumber: 1373
    functionLinenumberEnd: 1378
    functionName: basic::test_empty_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Cmd::ignore
    - unwrap
    - redis::Pipeline::cmd
    - exec
    - TestContext::connection
    - 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:1382,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1383,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1385,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_basic.rs:1385,1
    - Dst: '&mut Pipeline::cmd'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1385,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1385,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1385,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1385,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1385,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1385,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1385,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1385,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1385,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1385,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1385,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1381
    functionDepth: 2
    functionLinenumber: 1381
    functionLinenumberEnd: 1402
    functionName: basic::test_pipeline_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - query
    - redis::Cmd::arg
    - '&mut Pipeline::cmd'
    - redis::Pipeline::atomic
    - arg
    - unwrap
    - TestContext::connection
    - ignore
    - cmd
    - 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:1406,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1407,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1409,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1409,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1412,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1412,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1412,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1412,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1412,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1419,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_basic.rs:1419,1
    - Dst: '&mut Pipeline::ping'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1419,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1419,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1419,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1419,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1419,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:1419,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:1419,1
    - Dst: into_server_errors
      Src: /src/redis-rs/redis/tests/test_basic.rs:1430,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1430,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1437,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1405
    functionDepth: 9
    functionLinenumber: 1405
    functionLinenumberEnd: 1439
    functionName: basic::test_pipeline_transaction_with_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Pipeline::atomic
    - unwrap
    - get
    - "atomic()\n            .ping()\n            .set(\"x\", 142)\n            .ignore()\n\
      \            .get(\"x\")\n            .set(\"x\", 142)\n            .query::<()>"
    - RedisResult::unwrap
    - set
    - redis::cmd
    - Option::unwrap
    - exec
    - redis::Connection::set
    - '&mut Pipeline::ping'
    - ignore
    - '&mut Cmd::arg'
    - redis::Cmd::arg
    - into_server_errors
    - TestContext::connection
    - redis::Commands::get
    - unwrap_err
    - redis::pipe
    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:1443,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1444,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1446,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1448,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1448,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1448,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1448,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1448,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1448,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1448,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1448,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1460,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1460,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1460,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1460,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1463,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1463,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1463,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1463,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1463,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1463,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1463,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1463,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1442
    functionDepth: 2
    functionLinenumber: 1442
    functionLinenumberEnd: 1477
    functionName: basic::test_pipeline_reuse_query
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::exec'
    - query
    - redis::cmd
    - redis::Cmd::arg
    - arg
    - unwrap
    - TestContext::connection
    - ignore
    - RedisResult::unwrap
    - cmd
    - 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:1481,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1482,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1484,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1486,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1486,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1486,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1486,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1486,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1486,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1486,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1486,1
    - Dst: clear
      Src: /src/redis-rs/redis/tests/test_basic.rs:1495,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1499,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1499,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1499,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1499,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1501,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1501,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1501,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1501,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1501,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1501,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1501,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1501,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1501,1
    - Dst: clear
      Src: /src/redis-rs/redis/tests/test_basic.rs:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1480
    functionDepth: 3
    functionLinenumber: 1480
    functionLinenumberEnd: 1515
    functionName: basic::test_pipeline_reuse_query_clear
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::exec'
    - query
    - redis::cmd
    - redis::Cmd::arg
    - clear
    - arg
    - unwrap
    - TestContext::connection
    - ignore
    - RedisResult::unwrap
    - cmd
    - 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:1519,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1521,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1521,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1523
    functionName: basic::test_pipeline_len
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - cmd
    - arg
    - redis::pipe
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_len()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1527,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1530,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1530,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1526
    functionDepth: 2
    functionLinenumber: 1526
    functionLinenumberEnd: 1532
    functionName: basic::test_pipeline_is_empty
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - cmd
    - arg
    - redis::pipe
    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:1536,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1537,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1540,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1540,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1540,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1540,1
    - Dst: RedisResult::unwrap
      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::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:1544,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1544,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1544,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1544,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1545,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_basic.rs:1545,1
    - Dst: '&mut Pipeline::cmd'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1545,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1545,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1545,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1545,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1545,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1545,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1545,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1545,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1535
    functionDepth: 3
    functionLinenumber: 1535
    functionLinenumberEnd: 1566
    functionName: basic::test_real_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - '&mut Cmd::exec'
    - query
    - redis::cmd
    - '&mut Cmd::query'
    - redis::Cmd::arg
    - redis::Pipeline::atomic
    - '&mut Pipeline::cmd'
    - arg
    - unwrap
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    - ignore
    - cmd
    - 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:1570,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1571,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1574,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1574,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1574,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1574,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1574,1
    - Dst: redis::transaction
      Src: /src/redis-rs/redis/tests/test_basic.rs:1576,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::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1577,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1577,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1578,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1578,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1578,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1578,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1578,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1578,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1578,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1569
    functionDepth: 3
    functionLinenumber: 1569
    functionLinenumberEnd: 1589
    functionName: basic::test_real_transaction_highlevel
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - query
    - redis::cmd
    - '&mut Cmd::query'
    - redis::Cmd::arg
    - Pipeline::cmd
    - arg
    - unwrap
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    - ignore
    - redis::transaction
    - cmd
    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:1594,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1595,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1598,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:1599,1
    - Dst: redis::Connection::set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:1601,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1605,1
    - Dst: Barrier::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1605,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:1606,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:1608,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1609,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1610,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1610,1
    - Dst: Self::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1612,1
    - Dst: get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1614,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1614,1
    - Dst: get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1618,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1618,1
    - Dst: RedisServer::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1623,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1624,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1624,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1624,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1624,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1624,1
    - Dst: Self::join
      Src: /src/redis-rs/redis/tests/test_basic.rs:1632,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1632,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:1633,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:1636,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1636,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:1644,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1644,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: 1667
      start: 1592
    functionDepth: 8
    functionLinenumber: 1592
    functionLinenumberEnd: 1667
    functionName: basic::test_pubsub
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - supports_resp3
    - unwrap
    - Arc::new
    - RedisResult::unwrap
    - std::sync::mpsc::channel
    - subscribe
    - redis::cmd
    - try_recv
    - exec
    - expect
    - redis::Connection::as_pubsub
    - Barrier::new
    - get_message
    - Self::join
    - RedisServer::clone
    - Self::wait
    - redis::Connection::set_push_sender
    - '&mut Cmd::arg'
    - redis::Cmd::arg
    - RedisServer::wait
    - spawn
    - TestContext::connection
    linkageType: ''
    returnType: void
    signature: fn test_pubsub()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1671,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1672,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1675,1
    - Dst: redis::Connection::set_read_timeout
      Src: /src/redis-rs/redis/tests/test_basic.rs:1676,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:1677,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:1677,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1676,1
    - Dst: PubSub::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1679,1
    - Dst: PubSub::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1681,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1681,1
    - Dst: PubSub::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1682,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:1682,1
    - Dst: redis::Connection::publish
      Src: /src/redis-rs/redis/tests/test_basic.rs:1685,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1685,1
    - Dst: PubSub::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1687,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1670
    functionDepth: 1
    functionLinenumber: 1670
    functionLinenumberEnd: 1690
    functionName: basic::test_pubsub_handles_timeout
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - PubSub::get_message
    - Duration::from_millis
    - Some
    - unwrap
    - redis::Connection::publish
    - TestContext::connection
    - RedisResult::unwrap
    - PubSub::as_pubsub
    - redis::Connection::set_read_timeout
    - PubSub::subscribe
    - RedisResult::unwrap_err
    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:1695,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1696,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1699,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1703,1
    - Dst: Barrier::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1703,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:1704,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1707,1
    - Dst: Barrier::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1707,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:1708,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:1710,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1711,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1712,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1712,1
    - Dst: Self::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1714,1
    - Dst: Self::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1715,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:1717,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: ping
      Src: /src/redis-rs/redis/tests/test_basic.rs:1721,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1721,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:1725,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: ping_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1729,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1729,1
    - Dst: get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1733,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1733,1
    - Dst: get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1737,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1737,1
    - Dst: RedisServer::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1742,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1744,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1744,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1744,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1744,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1744,1
    - Dst: RedisServer::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1753,1
    - Dst: Self::join
      Src: /src/redis-rs/redis/tests/test_basic.rs:1755,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1693
    functionDepth: 8
    functionLinenumber: 1693
    functionLinenumberEnd: 1756
    functionName: basic::test_pubsub_send_ping
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - supports_resp3
    - unwrap
    - Arc::new
    - RedisResult::unwrap
    - subscribe
    - redis::cmd
    - exec
    - expect
    - redis::Connection::as_pubsub
    - Barrier::new
    - ping
    - get_message
    - Self::join
    - RedisServer::clone
    - Self::wait
    - '&mut Cmd::arg'
    - redis::Cmd::arg
    - RedisServer::wait
    - ping_message
    - spawn
    - TestContext::connection
    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:1760,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1761,1
    - Dst: RedisResult::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1762,1
    - Dst: PubSub::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1763,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1763,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1764,1
    - Dst: redis::Connection::publish
      Src: /src/redis-rs/redis/tests/test_basic.rs:1766,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1766,1
    - Dst: PubSub::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1767,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1767,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_basic.rs:1767,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1767,1
    - Dst: redis::Connection::publish
      Src: /src/redis-rs/redis/tests/test_basic.rs:1770,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1770,1
    - Dst: PubSub::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1771,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1771,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_basic.rs:1771,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1759
    functionDepth: 1
    functionLinenumber: 1759
    functionLinenumberEnd: 1773
    functionName: basic::pub_sub_subscription_to_multiple_channels
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - unwrap
    - redis::Connection::publish
    - RedisResult::as_pubsub
    - RedisResult::unwrap
    - TestContext::connection
    - PubSub::subscribe
    - get_payload
    - PubSub::get_message
    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:1777,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1778,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:1780,1
    - Dst: redis::Connection::set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:1782,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1784,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1785,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1785,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1786,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1786,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1787,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1787,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1788,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1788,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1789,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1789,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1790,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1790,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1794,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1794,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1795,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1795,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1795,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:1798,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:1816,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1816,1
    - Dst: redis::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_basic.rs:1818,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_basic.rs:1818,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1818,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1818,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_basic.rs:1819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1776
    functionDepth: 1
    functionLinenumber: 1776
    functionLinenumberEnd: 1825
    functionName: basic::test_pubsub_unsubscribe
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::set_push_sender
    - first
    - Result::unwrap
    - redis::Connection::set
    - redis::Connection::get
    - redis::from_redis_value_ref
    - try_recv
    - supports_resp3
    - unwrap
    - push
    - TestContext::connection
    - psubscribe
    - std::sync::mpsc::channel
    - RedisResult::unwrap
    - redis::Connection::as_pubsub
    - subscribe
    linkageType: ''
    returnType: void
    signature: fn test_pubsub_unsubscribe()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1829,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1830,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1831,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1832,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1832,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1832,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:1833,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:1834,1
    - Dst: std::thread::spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:1836,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1837,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1838,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1838,1
    - Dst: Self::send
      Src: /src/redis-rs/redis/tests/test_basic.rs:1839,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1839,1
    - Dst: get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1841,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1841,1
    - Dst: get_channel_name
      Src: /src/redis-rs/redis/tests/test_basic.rs:1842,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_basic.rs:1843,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1843,1
    - Dst: lock
      Src: /src/redis-rs/redis/tests/test_basic.rs:1844,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1844,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_basic.rs:1844,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1853,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1853,1
    - Dst: Self::send
      Src: /src/redis-rs/redis/tests/test_basic.rs:1854,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1854,1
    - Dst: "(\n        PendingRequest::recv"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1858,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1858,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1863,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1863,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1863,1
    - Dst: "arg(\"foo\")\n                .arg(index)\n                .query::<i32>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1863,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1863,1
    - Dst: "(\n        PendingRequest::recv"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1869,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1869,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1870,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1870,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1870,1
    - Dst: "arg(\"bar\")\n            .arg(-1)\n            .query::<i32>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1870,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1870,1
    - Dst: Self::join
      Src: /src/redis-rs/redis/tests/test_basic.rs:1875,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1875,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1828
    functionDepth: 8
    functionLinenumber: 1828
    functionLinenumberEnd: 1883
    functionName: basic::test_pubsub_subscribe_while_messages_are_sent
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - unwrap
    - get_payload
    - RedisResult::unwrap
    - std::thread::spawn
    - std::sync::mpsc::channel
    - subscribe
    - std::sync::Mutex::new
    - redis::cmd
    - "arg(\"bar\")\n            .arg(-1)\n            .query::<i32>"
    - get_channel_name
    - Self::unwrap
    - redis::Connection::as_pubsub
    - lock
    - Result::unwrap
    - Self::send
    - get_message
    - Self::join
    - push
    - "arg(\"foo\")\n                .arg(index)\n                .query::<i32>"
    - '&mut Cmd::arg'
    - redis::Cmd::arg
    - "(\n        PendingRequest::recv"
    - clone
    - Vec::new
    - TestContext::connection
    - std::sync::Arc::new
    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:1887,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1888,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1891,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1895,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1895,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1896,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1896,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1886
    functionDepth: 1
    functionLinenumber: 1886
    functionLinenumberEnd: 1898
    functionName: basic::test_pubsub_unsubscribe_no_subs
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::get
    - unwrap
    - TestContext::connection
    - redis::Connection::set
    - redis::Connection::as_pubsub
    linkageType: ''
    returnType: void
    signature: fn test_pubsub_unsubscribe_no_subs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1902,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1903,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1906,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1907,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1907,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1911,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1911,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1912,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1912,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1901
    functionDepth: 2
    functionLinenumber: 1901
    functionLinenumberEnd: 1914
    functionName: basic::test_pubsub_unsubscribe_one_sub
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::get
    - unwrap
    - TestContext::connection
    - redis::Connection::set
    - redis::Connection::as_pubsub
    - subscribe
    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:1918,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1919,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1922,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1923,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1923,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1924,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1924,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1928,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1928,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1929,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1929,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1917
    functionDepth: 2
    functionLinenumber: 1917
    functionLinenumberEnd: 1931
    functionName: basic::test_pubsub_unsubscribe_one_sub_one_psub
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::get
    - unwrap
    - TestContext::connection
    - psubscribe
    - RedisResult::unwrap
    - redis::Connection::set
    - redis::Connection::as_pubsub
    - subscribe
    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:1935,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1936,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1939,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:1941,1
    - Dst: redis::Connection::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1943,1
    - Dst: ControlFlow::Break
      Src: /src/redis-rs/redis/tests/test_basic.rs:1955,1
    - Dst: ControlFlow::Break
      Src: /src/redis-rs/redis/tests/test_basic.rs:1957,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1943,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:1967,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:1967,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1969,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1969,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1969,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1969,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1969,1
    - Dst: Self::join
      Src: /src/redis-rs/redis/tests/test_basic.rs:1977,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1977,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1980,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1980,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1981,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1981,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1934
    functionDepth: 2
    functionLinenumber: 1934
    functionLinenumberEnd: 1983
    functionName: basic::scoped_pubsub
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - redis::cmd
    - redis::Cmd::arg
    - Duration::from_millis
    - Self::join
    - ControlFlow::Break
    - redis::Connection::get
    - redis::Connection::subscribe
    - spawn
    - exec
    - unwrap
    - TestContext::connection
    - RedisResult::unwrap
    - redis::Connection::set
    - expect
    - sleep
    linkageType: ''
    returnType: void
    signature: fn scoped_pubsub()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1987,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1988,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1990,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1990,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1990,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1990,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1986
    functionDepth: 2
    functionLinenumber: 1986
    functionLinenumberEnd: 2010
    functionName: basic::test_tuple_args
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - redis::cmd
    - redis::Cmd::arg
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_tuple_args()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2014,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2015,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:2020,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_basic.rs:2020,1
    - Dst: '&mut Pipeline::set'
      Src: /src/redis-rs/redis/tests/test_basic.rs:2020,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:2020,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2020,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:2020,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2020,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2020,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:2020,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 2013
    functionDepth: 9
    functionLinenumber: 2013
    functionLinenumberEnd: 2033
    functionName: basic::test_nice_api
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Pipeline::set'
    - query
    - redis::Pipeline::atomic
    - get
    - unwrap
    - TestContext::connection
    - ignore
    - set
    - 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:2037,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 2036
    functionDepth: 1
    functionLinenumber: 2036
    functionLinenumberEnd: 2050
    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:2054,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2055,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:2062,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2062,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:2069,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2069,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:2076,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2076,1
    - Dst: redis::Connection::hscan
      Src: /src/redis-rs/redis/tests/test_basic.rs:2101,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2101,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2102,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:2104,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_basic.rs:2107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 2053
    functionDepth: 8
    functionLinenumber: 2053
    functionLinenumberEnd: 2113
    functionName: basic::test_nice_hash_api
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - insert
    - redis::Commands::hgetall
    - map
    - redis::Connection::hscan
    - unwrap
    - HashSet::new
    - TestContext::connection
    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:2117,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2118,1
    - Dst: redis::Commands::lrange
      Src: /src/redis-rs/redis/tests/test_basic.rs:2142,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:2142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2148
      start: 2116
    functionDepth: 1
    functionLinenumber: 2116
    functionLinenumberEnd: 2148
    functionName: basic::test_nice_list_api
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - expect
    - TestContext::connection
    - redis::Commands::lrange
    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:2152,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2153,1
    - Dst: redis::Connection::zrangebyscore_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2159,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2159,1
    - Dst: redis::Connection::zrangebyscore_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2164,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2151
    functionDepth: 1
    functionLinenumber: 2151
    functionLinenumberEnd: 2166
    functionName: basic::test_tuple_decoding_regression
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - unwrap
    - redis::Connection::zrangebyscore_withscores
    - 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:2171,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2172,1
    - Dst: HashMap::from
      Src: /src/redis-rs/redis/tests/test_basic.rs:2174,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:2178,1
    - Dst: hscan::<_, (String, u32)>
      Src: /src/redis-rs/redis/tests/test_basic.rs:2182,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2182,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2169
    functionDepth: 1
    functionLinenumber: 2169
    functionLinenumberEnd: 2200
    functionName: basic::test_tuple_decoding_from_iter
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - iter
    - unwrap
    - TestContext::connection
    - HashMap::from
    - hscan::<_, (String, u32)>
    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:2204,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2203
    functionDepth: 1
    functionLinenumber: 2203
    functionLinenumberEnd: 2209
    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:2220,1
    - Dst: max
      Src: /src/redis-rs/redis/tests/test_basic.rs:2220,1
    - Dst: '&str::len'
      Src: /src/redis-rs/redis/tests/test_basic.rs:2220,1
    - Dst: chars
      Src: /src/redis-rs/redis/tests/test_basic.rs:2226,1
    - Dst: zip
      Src: /src/redis-rs/redis/tests/test_basic.rs:2226,1
    - Dst: chars
      Src: /src/redis-rs/redis/tests/test_basic.rs:2228,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:2226,1
    - Dst: op
      Src: /src/redis-rs/redis/tests/test_basic.rs:2230,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:2226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 3
    argNames:
    - str1
    - str2
    - op
    argTypes:
    - '&str'
    - '&str'
    - F
    constantsTouched: []
    func_position:
      end: 2234
      start: 2216
    functionDepth: 9
    functionLinenumber: 2216
    functionLinenumberEnd: 2234
    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:
    - chars
    - zip
    - collect
    - map
    - '&str::len'
    - op
    - max
    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:2213,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2214,1
    - Dst: BTreeMap::from
      Src: /src/redis-rs/redis/tests/test_basic.rs:2259,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:2261,1
    - Dst: Self::keys
      Src: /src/redis-rs/redis/tests/test_basic.rs:2265,1
    - Dst: cloned
      Src: /src/redis-rs/redis/tests/test_basic.rs:2265,1
    - Dst: keys().cloned().collect::<Vec<_>>
      Src: /src/redis-rs/redis/tests/test_basic.rs:2265,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2269,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2269,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2274,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2274,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2279,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2279,1
    - Dst: choose
      Src: /src/redis-rs/redis/tests/test_basic.rs:2283,1
    - Dst: rng
      Src: /src/redis-rs/redis/tests/test_basic.rs:2283,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2283,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2285,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2285,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2291,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2291,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2298,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2298,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2305,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2305,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2312,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2212
    functionDepth: 3
    functionLinenumber: 2212
    functionLinenumberEnd: 2314
    functionName: basic::test_bit_operations
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - BTreeMap::from
    - Self::iter
    - keys().cloned().collect::<Vec<_>>
    - rng
    - unwrap
    - run_test_if_version_supported
    - redis::Commands::get
    - connection
    - choose
    - cloned
    - Self::keys
    linkageType: ''
    returnType: void
    signature: fn test_bit_operations()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2318,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2319,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:2321,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:2321,1
    - Dst: TestContext::stop_server
      Src: /src/redis-rs/redis/tests/test_basic.rs:2324,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:2326,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:2326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2317
    functionDepth: 2
    functionLinenumber: 2317
    functionLinenumberEnd: 2331
    functionName: basic::test_redis_server_down
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - query::<String>
    - redis::cmd
    - TestContext::stop_server
    - TestContext::connection
    linkageType: ''
    returnType: void
    signature: fn test_redis_server_down()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2335,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2336,1
    - Dst: redis::Connection::zadd_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:2338,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2338,1
    - Dst: redis::Connection::zadd_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:2340,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2375
      start: 2334
    functionDepth: 1
    functionLinenumber: 2334
    functionLinenumberEnd: 2375
    functionName: basic::test_zinterstore_weights
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - unwrap
    - redis::Connection::zadd_multiple
    - 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:2379,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2380,1
    - Dst: redis::Connection::zadd_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:2382,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2382,1
    - Dst: redis::Connection::zadd_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:2384,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2378
    functionDepth: 1
    functionLinenumber: 2378
    functionLinenumberEnd: 2440
    functionName: basic::test_zunionstore_weights
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - unwrap
    - redis::Connection::zadd_multiple
    - 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:2444,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2445,1
    - Dst: redis::Connection::zrembylex
      Src: /src/redis-rs/redis/tests/test_basic.rs:2464,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2464,1
    - Dst: redis::Connection::zrange
      Src: /src/redis-rs/redis/tests/test_basic.rs:2467,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2443
    functionDepth: 1
    functionLinenumber: 2443
    functionLinenumberEnd: 2469
    functionName: basic::test_zrembylex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::zrembylex
    - unwrap
    - TestContext::connection
    - redis::Connection::zrange
    linkageType: ''
    returnType: void
    signature: fn test_zrembylex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2476,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2477,1
    - Dst: redis::Connection::zadd
      Src: /src/redis-rs/redis/tests/test_basic.rs:2480,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2480,1
    - Dst: redis::Connection::zrandmember
      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:2485,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:2485,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2485,1
    - Dst: redis::Connection::zrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2489,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:2489,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2489,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: redis::Connection::zrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2504,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:2504,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2504,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:2507,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:2511,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2511,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
    - Dst: redis::Connection::zrandmember_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2518,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2520
      start: 2475
    functionDepth: 1
    functionLinenumber: 2475
    functionLinenumberEnd: 2520
    functionName: basic::test_zrandmember
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::zadd
    - redis::Connection::zrandmember_withscores
    - Some
    - supports_resp3
    - unwrap
    - TestContext::connection
    - 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:2524,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2525,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
    - Dst: redis::Connection::sismember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2533,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2535
      start: 2523
    functionDepth: 1
    functionLinenumber: 2523
    functionLinenumberEnd: 2535
    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:2542,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2543,1
    - Dst: redis::Connection::smismember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2547,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2549
      start: 2541
    functionDepth: 1
    functionLinenumber: 2541
    functionLinenumberEnd: 2549
    functionName: basic::test_smismember
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - unwrap
    - TestContext::connection
    - redis::Connection::smismember
    linkageType: ''
    returnType: void
    signature: fn test_smismember()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2553,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2554,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2556,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2556,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2557,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2557,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:2574,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:2574,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:2574,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:2574,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:2574,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2574,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2581,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2585
      start: 2552
    functionDepth: 2
    functionLinenumber: 2552
    functionLinenumberEnd: 2585
    functionName: basic::test_object_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - redis::cmd
    - redis::Cmd::arg
    - redis::Connection::get
    - arg
    - unwrap
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    - 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:2589,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2590,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2592,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2592,1
    - Dst: redis::Connection::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2593,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2593,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:2593,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:2593,1
    - Dst: TlsFilePaths::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2597,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:2593,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2601,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2601,1
    - Dst: redis::Connection::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2602,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2602,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:2602,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:2602,1
    - Dst: TlsFilePaths::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2606,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:2602,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
    - Dst: redis::Connection::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2613,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2588
    functionDepth: 9
    functionLinenumber: 2588
    functionLinenumberEnd: 2615
    functionName: basic::test_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - TlsFilePaths::unwrap
    - collect
    - redis::Connection::mget
    - map
    - unwrap
    - TestContext::connection
    - redis::Connection::set
    - into_iter
    linkageType: ''
    returnType: void
    signature: fn test_mget()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2619,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2620,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2622,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2622,1
    - Dst: redis::Commands::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2625,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2627
      start: 2618
    functionDepth: 1
    functionLinenumber: 2618
    functionLinenumberEnd: 2627
    functionName: basic::test_variable_length_get
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - unwrap
    - redis::Commands::mget
    - TestContext::connection
    - 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:2631,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2632,1
    - Dst: redis::Connection::rename
      Src: /src/redis-rs/redis/tests/test_basic.rs:2636,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2630
    functionDepth: 1
    functionLinenumber: 2630
    functionLinenumberEnd: 2638
    functionName: basic::test_multi_generics
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - unwrap
    - TestContext::connection
    - redis::Connection::rename
    linkageType: ''
    returnType: void
    signature: fn test_multi_generics()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2642,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2643,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2645,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2645,1
    - Dst: redis::Connection::set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2646,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2646,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2649,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2649,1
    - Dst: redis::Connection::set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2650,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2652
      start: 2641
    functionDepth: 9
    functionLinenumber: 2641
    functionLinenumberEnd: 2652
    functionName: basic::test_set_options_with_get
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::get
    - redis::Connection::set_options
    - SetOptions::default
    - unwrap
    - TestContext::connection
    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:2656,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2659,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2659,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2659,1
    - Dst: with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2659,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2662,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2664,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2666,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2666,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2666,1
    - Dst: with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2666,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2669,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2671,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2673,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2673,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2673,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2677,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2679,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2679,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2679,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:2681,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2683,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2685,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2685,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2685,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2688
      start: 2655
    functionDepth: 9
    functionLinenumber: 2655
    functionLinenumberEnd: 2688
    functionName: basic::test_set_options_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::with_expiration
    - Self::get
    - SetExpiry::PX
    - Self::conditional_set
    - assert_args
    - SetOptions::default
    - with_expiration
    - SetExpiry::EX
    - SetExpiry::EXAT
    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:2692,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2698,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2698,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2698,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2699,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2700,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2700,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2700,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2701,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2702,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2702,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2702,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2703,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2704,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2704,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2704,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2705,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2708,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2708,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2708,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2710,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2708,1
    - Dst: with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2708,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2712,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2713,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2714,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2714,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2714,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2716,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2714,1
    - Dst: with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2714,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2718,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2719,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2720,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2720,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2720,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2722,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2720,1
    - Dst: with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2720,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2724,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2725,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2726,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2726,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2726,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2728,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2726,1
    - Dst: with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2726,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2730,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2732
      start: 2691
    functionDepth: 9
    functionLinenumber: 2691
    functionLinenumberEnd: 2732
    functionName: basic::test_set_options_value_comparison
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - SetExpiry::PX
    - Self::conditional_set
    - ValueComparison::ifeq
    - ValueComparison::ifdne
    - ValueComparison::ifne
    - assert_args
    - SetOptions::default
    - Self::value_comparison
    - get
    - with_expiration
    - SetExpiry::EX
    - ValueComparison::ifdeq
    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:2737,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2738,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2750,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2754,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2754,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2755,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2754,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2750,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2765,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2769,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2769,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2770,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2769,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2765,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2778,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2782,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2782,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2783,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2782,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2736
    functionDepth: 9
    functionLinenumber: 2736
    functionLinenumberEnd: 2791
    functionName: basic::test_set_value_comparison_value_equals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - ValueComparison::ifeq
    - SetOptions::default
    - run_test_if_version_supported
    - Self::value_comparison
    - get
    - unwrap
    - connection
    - set_options
    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:2796,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2797,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2809,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2813,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2813,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2814,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2813,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2809,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2825,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2829,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2829,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2830,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2829,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2825,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2843,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2847,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2847,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2848,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2847,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2856
      start: 2795
    functionDepth: 9
    functionLinenumber: 2795
    functionLinenumberEnd: 2856
    functionName: basic::test_set_value_comparison_value_not_equals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - ValueComparison::ifne
    - SetOptions::default
    - run_test_if_version_supported
    - Self::value_comparison
    - get
    - unwrap
    - connection
    - set_options
    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:2861,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2862,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2868,1
    - Dst: String::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2873,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2874,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/tests/test_basic.rs:2878,1
    - Dst: fill_bytes
      Src: /src/redis-rs/redis/tests/test_basic.rs:2880,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2860
    functionDepth: 8
    functionLinenumber: 2860
    functionLinenumberEnd: 2900
    functionName: basic::test_digest_command
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - calculate_value_digest
    - rand::rng
    - fill_bytes
    - run_test_if_version_supported
    - connection
    - String::new
    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:2905,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2906,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2918,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2921,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2925,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2925,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2926,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2925,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2921,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2936,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2940,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2940,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2941,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2940,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2936,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2949,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2950,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2954,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2954,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2955,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2954,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2963
      start: 2904
    functionDepth: 9
    functionLinenumber: 2904
    functionLinenumberEnd: 2963
    functionName: basic::test_set_value_comparison_digest_equals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - calculate_value_digest
    - SetOptions::default
    - run_test_if_version_supported
    - Self::value_comparison
    - get
    - ValueComparison::ifdeq
    - connection
    - unwrap
    - set_options
    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:2968,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2969,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2981,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2982,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2986,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2986,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2987,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2986,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2982,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2997,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3001,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:3001,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:3002,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3001,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2997,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:3017,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3019,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3023,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:3023,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:3024,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3023,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3032
      start: 2967
    functionDepth: 9
    functionLinenumber: 2967
    functionLinenumberEnd: 3032
    functionName: basic::test_set_value_comparison_digest_not_equals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - calculate_value_digest
    - ValueComparison::ifdne
    - SetOptions::default
    - run_test_if_version_supported
    - Self::value_comparison
    - get
    - unwrap
    - connection
    - set_options
    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:3036,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3037,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:3043,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:3044,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:3047,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:3048,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:3049,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:3050,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3120
      start: 3035
    functionDepth: 1
    functionLinenumber: 3035
    functionLinenumberEnd: 3120
    functionName: basic::test_del_ex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - calculate_value_digest
    - ValueComparison::ifeq
    - ValueComparison::ifdne
    - ValueComparison::ifne
    - run_test_if_version_supported
    - connection
    - ValueComparison::ifdeq
    linkageType: ''
    returnType: void
    signature: fn test_del_ex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3128,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3128,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3129,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3130,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3130,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3131,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3134,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3134,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3134,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3135,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3136,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3136,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3136,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3137,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3138,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3138,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3138,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3139,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3140,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3140,1
    - Dst: SetExpiry::PXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3140,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3141,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3142,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3142,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3143,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3146,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3146,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3146,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3148,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3149,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3151,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3151,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3151,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3153,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3154,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3156,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3156,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3156,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3160
      start: 3124
    functionDepth: 9
    functionLinenumber: 3124
    functionLinenumberEnd: 3160
    functionName: basic::test_mset_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::with_expiration
    - SetExpiry::PX
    - Self::conditional_set
    - assert_args
    - SetExpiry::EX
    - SetExpiry::PXAT
    - MSetOptions::default
    - SetExpiry::EXAT
    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:3165,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3166,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3179,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3206
      start: 3164
    functionDepth: 9
    functionLinenumber: 3164
    functionLinenumberEnd: 3206
    functionName: basic::test_mset_ex_nx
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - MSetOptions::default
    - run_test_if_version_supported
    - Self::conditional_set
    - connection
    linkageType: ''
    returnType: void
    signature: fn test_mset_ex_nx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:3211,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3212,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3226,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3226,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3235,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3260
      start: 3210
    functionDepth: 9
    functionLinenumber: 3210
    functionLinenumberEnd: 3260
    functionName: basic::test_mset_ex_xx
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - MSetOptions::default
    - run_test_if_version_supported
    - Self::conditional_set
    - connection
    linkageType: ''
    returnType: void
    signature: fn test_mset_ex_xx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:3265,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3266,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:3268,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:3268,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3268,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3288,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3289,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3292,1
    - Dst: as_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:3292,1
    - Dst: SetExpiry::PXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3296,1
    - Dst: as_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3296,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3298,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3304,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:3305,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_basic.rs:3305,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3308,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3308,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3325,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3331
      start: 3264
    functionDepth: 9
    functionLinenumber: 3264
    functionLinenumberEnd: 3331
    functionName: basic::test_mset_ex_expiration_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - MSetOptions::default
    - Self::with_expiration
    - duration_since
    - SetExpiry::PX
    - Self::conditional_set
    - Duration::from_millis
    - iter
    - unwrap
    - run_test_if_version_supported
    - SetExpiry::EX
    - as_secs
    - SetExpiry::PXAT
    - connection
    - as_millis
    - SystemTime::now
    - enumerate
    - sleep
    - SetExpiry::EXAT
    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:3335,1
    - Dst: CopyOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3338,1
    - Dst: Self::db
      Src: /src/redis-rs/redis/tests/test_basic.rs:3338,1
    - Dst: i64::replace
      Src: /src/redis-rs/redis/tests/test_basic.rs:3338,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3341
      start: 3334
    functionDepth: 1
    functionLinenumber: 3334
    functionLinenumberEnd: 3341
    functionName: basic::test_copy_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::db
    - CopyOptions::default
    - assert_args
    - i64::replace
    linkageType: ''
    returnType: void
    signature: fn test_copy_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:3345,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3346,1
    - Dst: CopyOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3348,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3349,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3349,1
    - Dst: redis::Connection::copy
      Src: /src/redis-rs/redis/tests/test_basic.rs:3350,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3350,1
    - Dst: redis::Connection::copy
      Src: /src/redis-rs/redis/tests/test_basic.rs:3355,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3355,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3360,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3360,1
    - Dst: redis::Connection::copy
      Src: /src/redis-rs/redis/tests/test_basic.rs:3361,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3361,1
    - Dst: redis::Connection::copy
      Src: /src/redis-rs/redis/tests/test_basic.rs:3366,1
    - Dst: Self::replace
      Src: /src/redis-rs/redis/tests/test_basic.rs:3366,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3369
      start: 3344
    functionDepth: 1
    functionLinenumber: 3344
    functionLinenumberEnd: 3369
    functionName: basic::test_copy
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::copy
    - unwrap
    - CopyOptions::default
    - Self::replace
    - TestContext::connection
    - redis::Connection::set
    linkageType: ''
    returnType: void
    signature: fn test_copy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:3373,1
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:3375,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3377,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:3379,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:3379,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3379,1
    - Dst: as_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:3379,1
    - Dst: redis::Connection::set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3383,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3386,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3386,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3386,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3383,1
    - Dst: redis::Connection::expire_time
      Src: /src/redis-rs/redis/tests/test_basic.rs:3389,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3389,1
    - Dst: redis::Connection::set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3395,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3398,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3398,1
    - Dst: SetExpiry::PXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3398,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3395,1
    - Dst: redis::Connection::pexpire_time
      Src: /src/redis-rs/redis/tests/test_basic.rs:3401,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3406
      start: 3372
    functionDepth: 9
    functionLinenumber: 3372
    functionLinenumberEnd: 3406
    functionName: basic::test_expire_time
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::with_expiration
    - duration_since
    - redis::Connection::expire_time
    - redis::Connection::pexpire_time
    - redis::Connection::set_options
    - unwrap
    - run_test_if_version_supported
    - as_secs
    - TestContext::connection
    - SetOptions::default
    - SetExpiry::PXAT
    - SystemTime::now
    - SetExpiry::EXAT
    linkageType: ''
    returnType: void
    signature: fn test_expire_time()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:3410,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3411,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3413,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3413,1
    - Dst: redis::Connection::set_read_timeout
      Src: /src/redis-rs/redis/tests/test_basic.rs:3415,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3415,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3415,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3415,1
    - Dst: redis::Connection::blpop
      Src: /src/redis-rs/redis/tests/test_basic.rs:3420,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3425,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3425,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3429,1
    - Dst: Cmd::exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:3429,1
    - Dst: RedisResult::is_ok
      Src: /src/redis-rs/redis/tests/test_basic.rs:3429,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3432,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3432,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3435,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3435,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3435,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3437
      start: 3409
    functionDepth: 1
    functionLinenumber: 3409
    functionLinenumberEnd: 3437
    functionName: basic::test_timeout_leaves_usable_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::set
    - Duration::from_millis
    - RedisResult::is_ok
    - Cmd::exec
    - redis::Connection::get
    - Some
    - unwrap
    - TestContext::connection
    - RedisResult::unwrap
    - redis::Connection::set_read_timeout
    - redis::Connection::blpop
    - cmd
    - sleep
    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:3444,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_basic.rs:3444,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3444,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3444,1
    - Dst: std::io::BufReader::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:3446,1
    - Dst: try_clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:3446,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3446,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:3450,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3451,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3451,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3451,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3451,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3456,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3456,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3456,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3456,1
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis/tests/test_basic.rs:3461,1
    - Dst: Vec::len
      Src: /src/redis-rs/redis/tests/test_basic.rs:3461,1
    - Dst: RedisServer::read_exact
      Src: /src/redis-rs/redis/tests/test_basic.rs:3463,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3463,1
    - Dst: write_all
      Src: /src/redis-rs/redis/tests/test_basic.rs:3464,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3464,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: Vec::len
      Src: /src/redis-rs/redis/tests/test_basic.rs:3468,1
    - Dst: RedisServer::read_exact
      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: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3472,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3472,1
    - Dst: '&mut Cmd::get_packed_command'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3472,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
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3475,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3475,1
    - Dst: write_all
      Src: /src/redis-rs/redis/tests/test_basic.rs:3476,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3476,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3477,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3477,1
    - Dst: '&mut Cmd::get_packed_command'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3477,1
    - Dst: write_all
      Src: /src/redis-rs/redis/tests/test_basic.rs:3478,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 98
    argCount: 1
    argNames:
    - listener
    argTypes:
    - std::net::TcpListener
    constantsTouched: []
    func_position:
      end: 3484
      start: 3443
    functionDepth: 2
    functionLinenumber: 3443
    functionLinenumberEnd: 3484
    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:
    - '&mut Cmd::arg'
    - write_all
    - Vec::len
    - std::net::TcpListener::incoming
    - Duration::from_millis
    - Cmd::arg
    - '&mut Cmd::get_packed_command'
    - try_clone
    - next
    - arg
    - get_packed_pipeline
    - unwrap
    - RedisServer::read_exact
    - std::io::BufReader::new
    - cmd
    - sleep
    - 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:3486,1
    - Dst: TcpListener::local_addr
      Src: /src/redis-rs/redis/tests/test_basic.rs:3487,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3487,1
    - Dst: port
      Src: /src/redis-rs/redis/tests/test_basic.rs:3487,1
    - Dst: thread::spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:3488,1
    - Dst: fake_redis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3488,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:3490,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3490,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3491,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3491,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/tests/test_basic.rs:3492,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3492,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3492,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3492,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3495,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3499,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3499,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3501,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3501,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 137
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3503
      start: 3440
    functionDepth: 9
    functionLinenumber: 3440
    functionLinenumberEnd: 3503
    functionName: basic::test_timeout_in_middle_of_message_leaves_connection_usable
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - Duration::from_millis
    - set_read_timeout
    - redis::Client::open
    - Some
    - thread::spawn
    - unwrap
    - get
    - fake_redis
    - TcpListener::local_addr
    - RedisResult::unwrap
    - get_listener_on_free_port
    - sleep
    - port
    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:3507,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3508,1
    - Dst: TestContext::get_version
      Src: /src/redis-rs/redis/tests/test_basic.rs:3514,1
    - Dst: redis::Connection::bzpopmin
      Src: /src/redis-rs/redis/tests/test_basic.rs:3526,1
    - Dst: redis::Connection::bzpopmax
      Src: /src/redis-rs/redis/tests/test_basic.rs:3527,1
    - Dst: redis::Connection::bzmpop_min
      Src: /src/redis-rs/redis/tests/test_basic.rs:3539,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/tests/test_basic.rs:3539,1
    - Dst: redis::Connection::bzmpop_max
      Src: /src/redis-rs/redis/tests/test_basic.rs:3540,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/tests/test_basic.rs:3540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3545
      start: 3506
    functionDepth: 1
    functionLinenumber: 3506
    functionLinenumberEnd: 3545
    functionName: basic::test_blocking_sorted_set_api
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::bzmpop_max
    - redis::Connection::bzpopmax
    - redis::Connection::bzmpop_min
    - TestContext::get_version
    - redis::Connection::bzpopmin
    - as_slice
    - TestContext::connection
    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:3549,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3550,1
    - Dst: SortedSetAddOptions::add_only
      Src: /src/redis-rs/redis/tests/test_basic.rs:3554,1
    - Dst: SortedSetAddOptions::update_only
      Src: /src/redis-rs/redis/tests/test_basic.rs:3563,1
    - Dst: include_changed_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:3570,1
    - Dst: SortedSetAddOptions::update_only
      Src: /src/redis-rs/redis/tests/test_basic.rs:3580,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3580,1
    - Dst: SortedSetAddOptions::update_only
      Src: /src/redis-rs/redis/tests/test_basic.rs:3589,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3589,1
    - Dst: SortedSetAddOptions::add_or_update
      Src: /src/redis-rs/redis/tests/test_basic.rs:3598,1
    - Dst: include_changed_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:3606,1
    - Dst: SortedSetAddOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3612,1
    - Dst: Self::increment_score
      Src: /src/redis-rs/redis/tests/test_basic.rs:3612,1
    - Dst: Self::include_changed_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:3612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3620
      start: 3548
    functionDepth: 9
    functionLinenumber: 3548
    functionLinenumberEnd: 3620
    functionName: basic::test_sorted_set_add_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - SortedSetAddOptions::update_only
    - SortedSetAddOptions::add_only
    - Self::include_changed_count
    - include_changed_count
    - Some
    - SortedSetAddOptions::add_or_update
    - TestContext::connection
    - SortedSetAddOptions::default
    - Self::increment_score
    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:3625,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3626,1
    - Dst: vemb
      Src: /src/redis-rs/redis/tests/test_basic.rs:3650,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3650,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:3652,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_basic.rs:3652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3704
      start: 3624
    functionDepth: 2
    functionLinenumber: 3624
    functionLinenumberEnd: 3704
    functionName: basic::test_vector_sets_basic_operations
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - iter
    - vemb
    - unwrap
    - run_test_if_version_supported
    - connection
    - enumerate
    linkageType: ''
    returnType: void
    signature: fn test_vector_sets_basic_operations()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:3709,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3710,1
    - Dst: VAddOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3746,1
    - Dst: Self::set_attributes
      Src: /src/redis-rs/redis/tests/test_basic.rs:3746,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:3746,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3759,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:3760,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3759,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3777,1
    - Dst: VectorSimilaritySearchInput::Fp32
      Src: /src/redis-rs/redis/tests/test_basic.rs:3778,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3777,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::Float32
      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::Float64
      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: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3795,1
    - Dst: VectorSimilaritySearchInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:3798,1
    - Dst: EmbeddingInput::String
      Src: /src/redis-rs/redis/tests/test_basic.rs:3798,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3795,1
    - Dst: VSimOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3808,1
    - Dst: Self::set_with_scores
      Src: /src/redis-rs/redis/tests/test_basic.rs:3808,1
    - Dst: Self::set_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:3808,1
    - Dst: vsim_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3812,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:3815,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3812,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_basic.rs:3834,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_basic.rs:3834,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/tests/test_basic.rs:3834,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:3835,1
    - Dst: find_map
      Src: /src/redis-rs/redis/tests/test_basic.rs:3835,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3837,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3846,1
    - Dst: VSimOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3857,1
    - Dst: Self::set_filter_expression
      Src: /src/redis-rs/redis/tests/test_basic.rs:3857,1
    - Dst: vsim_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3858,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:3861,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3858,1
    - Dst: VSimOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3885,1
    - Dst: Self::set_filter_expression
      Src: /src/redis-rs/redis/tests/test_basic.rs:3885,1
    - Dst: vsim_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3886,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:3889,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3886,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3906
      start: 3708
    functionDepth: 9
    functionLinenumber: 3708
    functionLinenumberEnd: 3906
    functionName: basic::test_vector_sets_similarity_search
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - VectorSimilaritySearchInput::Values
    - Value::BulkString
    - iter
    - Self::set_attributes
    - Self::set_count
    - unwrap
    - Self::set_with_scores
    - to_vec
    - vsim_options
    - run_test_if_version_supported
    - vsim
    - VectorSimilaritySearchInput::Fp32
    - Self::unwrap
    - EmbeddingInput::Float64
    - EmbeddingInput::Float32
    - as_bytes
    - VSimOptions::default
    - EmbeddingInput::String
    - find_map
    - VAddOptions::default
    - Self::set_filter_expression
    - VectorSimilaritySearchInput::Element
    - Some
    - clone
    - connection
    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:3911,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3912,1
    - Dst: VAddOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3944,1
    - Dst: Self::set_reduction_dimension
      Src: /src/redis-rs/redis/tests/test_basic.rs:3944,1
    - Dst: Self::set_check_and_set_style
      Src: /src/redis-rs/redis/tests/test_basic.rs:3944,1
    - Dst: Self::set_quantization
      Src: /src/redis-rs/redis/tests/test_basic.rs:3944,1
    - Dst: Self::set_build_exploration_factor
      Src: /src/redis-rs/redis/tests/test_basic.rs:3944,1
    - Dst: Self::set_max_number_of_links
      Src: /src/redis-rs/redis/tests/test_basic.rs:3944,1
    - Dst: Self::set_attributes
      Src: /src/redis-rs/redis/tests/test_basic.rs:3953,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:3953,1
    - Dst: vemb
      Src: /src/redis-rs/redis/tests/test_basic.rs:3961,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3961,1
    - Dst: vemb_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3965,1
    - Dst: VEmbOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3969,1
    - Dst: Self::set_raw_representation
      Src: /src/redis-rs/redis/tests/test_basic.rs:3969,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3965,1
    - Dst: vinfo
      Src: /src/redis-rs/redis/tests/test_basic.rs:3985,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3985,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3985,1
    - Dst: vlinks
      Src: /src/redis-rs/redis/tests/test_basic.rs:4014,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4014,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4022,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_basic.rs:4022,1
    - Dst: vlinks_with_scores
      Src: /src/redis-rs/redis/tests/test_basic.rs:4033,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4033,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4048,1
    - Dst: zip
      Src: /src/redis-rs/redis/tests/test_basic.rs:4048,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4050,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_basic.rs:4048,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4098,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:4098,1
    - Dst: '&''static str::to_string'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4100,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:4098,1
    - Dst: vrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:4103,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4103,1
    - Dst: vrandmember_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:4107,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_basic.rs:4108,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4107,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4112,1
    - Dst: all
      Src: /src/redis-rs/redis/tests/test_basic.rs:4112,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_basic.rs:4112,1
    - Dst: vrandmember_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:4116,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_basic.rs:4117,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4116,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4120,1
    - Dst: all
      Src: /src/redis-rs/redis/tests/test_basic.rs:4120,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_basic.rs:4120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 164
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4138
      start: 3910
    functionDepth: 9
    functionLinenumber: 3910
    functionLinenumberEnd: 4138
    functionName: basic::test_vector_sets_auxiliary_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - zip
    - iter
    - map
    - Self::set_attributes
    - unwrap
    - vemb_options
    - contains
    - Self::set_max_number_of_links
    - VEmbOptions::default
    - vinfo
    - Self::set_raw_representation
    - run_test_if_version_supported
    - Self::set_build_exploration_factor
    - enumerate
    - Self::set_check_and_set_style
    - all
    - vrandmember_multiple
    - vemb
    - '&''static str::to_string'
    - vlinks
    - VAddOptions::default
    - Self::set_reduction_dimension
    - collect
    - vrandmember
    - Self::set_quantization
    - vlinks_with_scores
    - clone
    - connection
    - len
    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:4143,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4144,1
    - Dst: vdim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4153,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4155,1
    - Dst: vadd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4187,1
    - Dst: VectorAddInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:4189,1
    - Dst: EmbeddingInput::Float32
      Src: /src/redis-rs/redis/tests/test_basic.rs:4189,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4196,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4239,1
    - Dst: VectorSimilaritySearchInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:4242,1
    - Dst: EmbeddingInput::Float64
      Src: /src/redis-rs/redis/tests/test_basic.rs:4242,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4239,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4247,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:4250,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4247,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4256,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:4258,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4266
      start: 4142
    functionDepth: 1
    functionLinenumber: 4142
    functionLinenumberEnd: 4266
    functionName: basic::test_vector_sets_edge_cases
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - VectorAddInput::Values
    - VectorSimilaritySearchInput::Values
    - EmbeddingInput::Float32
    - VectorSimilaritySearchInput::Element
    - unwrap
    - run_test_if_version_supported
    - vsim
    - vadd
    - connection
    - vdim
    - EmbeddingInput::Float64
    - unwrap_err
    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:4270,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:4271,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_basic.rs:4271,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4272,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4272,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4274,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4274,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4276,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4276,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:4277,1
    - Dst: set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:4278,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4279,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4279,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4279,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:4279,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4279,1
    - Dst: build_simple_pipeline_for_invalidation
      Src: /src/redis-rs/redis/tests/test_basic.rs:4284,1
    - Dst: Pipeline::query
      Src: /src/redis-rs/redis/tests/test_basic.rs:4286,1
    - Dst: get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:4287,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4287,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4288,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4288,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:4299,1
    - Dst: set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:4300,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:4300,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_basic.rs:4301,1
    - Dst: Pipeline::query
      Src: /src/redis-rs/redis/tests/test_basic.rs:4302,1
    - Dst: get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:4303,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4303,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4304,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4304,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_basic.rs:4316,1
    - Dst: Pipeline::query
      Src: /src/redis-rs/redis/tests/test_basic.rs:4318,1
    - Dst: get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:4319,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4323
      start: 4269
    functionDepth: 9
    functionLinenumber: 4269
    functionLinenumberEnd: 4323
    functionName: basic::test_push_manager
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - get_connection
    - connection_info
    - drop
    - unwrap
    - set_push_sender
    - RedisResult::unwrap
    - Cmd::arg
    - std::sync::mpsc::channel
    - cmd
    - build_simple_pipeline_for_invalidation
    - try_recv
    - exec
    - get_int
    - redis::Client::open
    - Pipeline::query
    - set_redis_settings
    - '&mut Cmd::arg'
    - Self::set_protocol
    - clone
    - RedisConnectionInfo::default
    linkageType: ''
    returnType: void
    signature: fn test_push_manager()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4327,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:4328,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_basic.rs:4328,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4329,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4329,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4330,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4330,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4332,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4332,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:4333,1
    - Dst: set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:4334,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:4334,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:4336,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4336,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_basic.rs:4341,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:4342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4345
      start: 4326
    functionDepth: 9
    functionLinenumber: 4326
    functionLinenumberEnd: 4345
    functionName: basic::test_push_manager_disconnection
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - get_connection
    - connection_info
    - Self::set_protocol
    - redis::Client::open
    - drop
    - clone
    - unwrap
    - RedisConnectionInfo::default
    - set_push_sender
    - RedisResult::unwrap
    - std::sync::mpsc::channel
    - set_redis_settings
    - set
    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:4350,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4351,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4354,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:4356,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4357,1
    - Dst: redis::Connection::set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:4358,1
    - Dst: redis::Connection::subscribe_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4360,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4360,1
    - Dst: redis::Connection::psubscribe_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4361,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4361,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4364,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4364,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4364,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:4364,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4364,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4373,1
    - Dst: redis::Cmd::exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:4373,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4373,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4378,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4378,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_basic.rs:4379,1
    - Dst: redis::Connection::unsubscribe_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4417,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4417,1
    - Dst: redis::Connection::punsubscribe_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4418,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4418,1
    - Dst: redis::Connection::ping
      Src: /src/redis-rs/redis/tests/test_basic.rs:4419,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4419,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4425,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4425,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4433,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4433,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4443,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4444
      start: 4348
    functionDepth: 2
    functionLinenumber: 4348
    functionLinenumberEnd: 4444
    functionName: basic::test_raw_pubsub_with_push_manager
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - supports_resp3
    - unwrap
    - RedisResult::unwrap
    - std::sync::mpsc::channel
    - redis::Connection::punsubscribe_resp3
    - redis::cmd
    - redis::Connection::subscribe_resp3
    - try_recv
    - redis::Connection::unsubscribe_resp3
    - exec
    - redis::Cmd::exec
    - push
    - redis::Connection::ping
    - redis::Connection::psubscribe_resp3
    - redis::Connection::set_push_sender
    - '&mut Cmd::arg'
    - redis::Cmd::arg
    - TestContext::connection
    - unwrap_err
    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:4448,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4449,1
    - Dst: RedisConnectionInfo::set_db
      Src: /src/redis-rs/redis/tests/test_basic.rs:4449,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4450,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4450,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4452,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4452,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4453,1
    - Dst: RedisResult::unwrap
      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: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4454,1
    - Dst: '&mut Cmd::query'
      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: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4459
      start: 4447
    functionDepth: 10
    functionLinenumber: 4447
    functionLinenumberEnd: 4459
    functionName: basic::test_select_db
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - get_connection
    - connection_info
    - redis::cmd
    - '&mut Cmd::query'
    - redis::Cmd::arg
    - redis::Client::open
    - RedisConnectionInfo::set_db
    - unwrap
    - RedisResult::unwrap
    - set_redis_settings
    - redis_settings
    linkageType: ''
    returnType: void
    signature: fn test_select_db()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4463,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4464,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4465,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4465,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4465,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:4465,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4465,1
    - Dst: redis::Connection::client_getname
      Src: /src/redis-rs/redis/tests/test_basic.rs:4470,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4470,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4472
      start: 4462
    functionDepth: 2
    functionLinenumber: 4462
    functionLinenumberEnd: 4472
    functionName: basic::test_client_getname
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - redis::cmd
    - redis::Cmd::arg
    - redis::Connection::client_getname
    - unwrap
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_client_getname()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4476,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4477,1
    - Dst: redis::Connection::client_id
      Src: /src/redis-rs/redis/tests/test_basic.rs:4478,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4479
      start: 4475
    functionDepth: 1
    functionLinenumber: 4475
    functionLinenumberEnd: 4479
    functionName: basic::test_client_id
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - unwrap
    - redis::Connection::client_id
    - 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:4483,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4484,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4486,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4486,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4486,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4488
      start: 4482
    functionDepth: 3
    functionLinenumber: 4482
    functionLinenumberEnd: 4488
    functionName: basic::test_client_setname
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::cmd
    - '&mut Cmd::query'
    - redis::Cmd::arg
    - unwrap
    - TestContext::connection
    linkageType: ''
    returnType: void
    signature: fn test_client_setname()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4492,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4493,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4494,1
    - Dst: query::<Role>
      Src: /src/redis-rs/redis/tests/test_basic.rs:4494,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4496
      start: 4491
    functionDepth: 2
    functionLinenumber: 4491
    functionLinenumberEnd: 4496
    functionName: basic::test_role_primary
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::cmd
    - unwrap
    - TestContext::connection
    - query::<Role>
    linkageType: ''
    returnType: void
    signature: fn test_role_primary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4500,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4501,1
    - Dst: thread::spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:4503,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4504,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4504,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4504,1
    - Dst: "arg(\"SLEEP\")\n                .arg(\"0.1\")\n                .query::<()>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:4504,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4504,1
    - Dst: thread::sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:4512,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:4512,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4514,1
    - Dst: RedisConnectionInfo::set_db
      Src: /src/redis-rs/redis/tests/test_basic.rs:4514,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4515,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4515,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4517,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4517,1
    - Dst: get_connection_with_timeout
      Src: /src/redis-rs/redis/tests/test_basic.rs:4518,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:4518,1
    - Dst: join
      Src: /src/redis-rs/redis/tests/test_basic.rs:4522,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4523
      start: 4499
    functionDepth: 9
    functionLinenumber: 4499
    functionLinenumberEnd: 4523
    functionName: basic::test_connection_timeout_on_busy_server
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - "arg(\"SLEEP\")\n                .arg(\"0.1\")\n                .query::<()>"
    - connection_info
    - Duration::from_millis
    - Client::open
    - RedisConnectionInfo::set_db
    - get_connection_with_timeout
    - thread::spawn
    - unwrap
    - join
    - TestContext::connection
    - RedisResult::unwrap
    - Cmd::arg
    - thread::sleep
    - cmd
    - set_redis_settings
    - redis_settings
    linkageType: ''
    returnType: void
    signature: fn test_connection_timeout_on_busy_server()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4527,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4528,1
    - Dst: redis::Pipeline::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4530,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:4530,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4530,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4536,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:4536,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4541
      start: 4526
    functionDepth: 10
    functionLinenumber: 4526
    functionLinenumberEnd: 4541
    functionName: basic::fail_on_empty_command
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - query::<String>
    - redis::Pipeline::new
    - TestContext::connection
    - unwrap_err
    - redis::Cmd::new
    linkageType: ''
    returnType: void
    signature: fn fail_on_empty_command()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:39,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: cluster_async::broken_pipe_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - RedisError::from
    - std::io::Error::new
    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:46,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:46,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:46,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:46,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:46,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:52,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:52,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:52,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:52,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - connection
    argTypes:
    - impl redis::aio::ConnectionLike
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: cluster_async::smoke_test_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - Self::query_async
    - exec_async
    - Cmd::arg
    - '&mut Cmd::clone'
    - expect
    - cmd
    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:63,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:65,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: cluster_async::async_cluster_basic_cmd
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new
    - Result::async_connection
    - smoke_test_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:71,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:73,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:74,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:74,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:74,1
    - Dst: set_no_response
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:74,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:74,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:74,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:83,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:83,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:83,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:83,1
    - Dst: set_no_response
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:83,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:83,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:83,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:92,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:92,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 97
    functionName: cluster_async::no_response_skips_response_even_on_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - redis::cmd
    - TestClusterContext::new
    - redis::Cmd::arg
    - Result::async_connection
    - '&mut Cmd::exec_async'
    - arg
    - unwrap
    - set_no_response
    - '&mut Cmd::query_async'
    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:102,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:102,1
    - Dst: host_and_port
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:104,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:104,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:107,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:108,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:104,1
    - Dst: host_and_port
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:113,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:113,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:116,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:117,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:113,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:123,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:124,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:125,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:125,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:124,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:130,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:131,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:131,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:130,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:136,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:137,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:141,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:142,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 100
    functionDepth: 9
    functionLinenumber: 100
    functionLinenumberEnd: 146
    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:
    - into
    - redis::cmd
    - host_and_port
    - bool::route_command
    - map
    - clone
    - unwrap
    - TestClusterContext::async_connection
    - RoutingInfo::SingleNode
    - retries
    - TestClusterContext::new_with_cluster_client_builder
    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:150,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:152,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:153,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:153,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:153,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:153,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:153,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:153,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 162
    functionName: cluster_async::async_cluster_basic_eval
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - TestClusterContext::new
    - Result::async_connection
    - arg
    - unwrap
    - query_async
    - Cmd::arg
    - cmd
    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:166,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:168,1
    - Dst: Script::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:169,1
    - Dst: Script::key
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:169,1
    - Dst: ScriptInvocation::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:169,1
    - Dst: '&''b mut ScriptInvocation::invoke_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:169,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 178
    functionName: cluster_async::async_cluster_basic_script
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&''b mut ScriptInvocation::invoke_async'
    - TestClusterContext::new
    - Result::async_connection
    - ScriptInvocation::arg
    - Script::new
    - unwrap
    - Script::key
    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:182,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:184,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:185,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:185,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:186,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:186,1
    - Dst: bool::get
      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::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:190,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:190,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:193,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:194,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:195,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:203,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:203,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:205,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:205,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 181
    functionDepth: 9
    functionLinenumber: 181
    functionLinenumberEnd: 207
    functionName: cluster_async::async_cluster_route_flush_to_specific_node
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - bool::get
    - TestClusterContext::new
    - Result::async_connection
    - bool::set
    - SingleNodeRoutingInfo::SpecificNode
    - unwrap
    - RoutingInfo::SingleNode
    - Route::new
    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:211,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:213,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:214,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:217,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:218,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:220,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:221,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:218,1
    - Dst: from_redis_value::<HashMap<String, String>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:226,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:226,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:228,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:228,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:228,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:229,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:230,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:230,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:230,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:231,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:231,1
    - Dst: parse
      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: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:233,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:235,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:236,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:233,1
    - Dst: from_redis_value::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:240,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 210
    functionDepth: 6
    functionLinenumber: 210
    functionLinenumberEnd: 243
    functionName: cluster_async::async_cluster_route_flush_to_node_by_address
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - split
    - redis::cmd
    - TestClusterContext::new
    - Result::async_connection
    - into_iter
    - parse
    - bool::route_command
    - next
    - Option::unwrap
    - Cmd::clone
    - unwrap
    - RoutingInfo::MultiNode
    - RoutingInfo::SingleNode
    - Cmd::arg
    - to_string
    - from_redis_value::<String>
    - from_redis_value::<HashMap<String, 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:247,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:250,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:255,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:255,1
    - Dst: redis::from_redis_value_ref::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:259,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:259,1
    - Dst: redis::from_redis_value_ref::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:260,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:260,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:255,1
    - Dst: sort_by
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:264,1
    - Dst: cmp
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:264,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:265,1
    - Dst: std::iter::Chain::unzip
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:265,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:271,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:271,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:275,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:271,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:277,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:277,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:277,1
    - Dst: ClusterClientBuilder::build
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:277,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:277,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:281,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:281,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:284,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:285,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:286,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:285,1
    - Dst: split_to_addresses_and_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:289,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:291,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:291,1
    - Dst: redis::ConnectionInfo::addr
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:293,1
    - Dst: '&ConnectionAddr::to_string'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:293,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:291,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:295,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:301,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:301,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:306,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:307,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:308,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:307,1
    - Dst: split_to_addresses_and_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:311,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:317,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:317,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 246
    functionDepth: 9
    functionLinenumber: 246
    functionLinenumberEnd: 321
    functionName: cluster_async::async_cluster_route_info_to_nodes
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - std::iter::Chain::unzip
    - std::iter::Chain::map
    - iter
    - map
    - unwrap
    - RedisResult::unwrap
    - redis::from_redis_value_ref::<String>
    - cmp
    - ClusterClient::builder
    - split
    - get_async_connection
    - redis::cmd
    - ClusterClientBuilder::build
    - RedisServer::connection_info
    - TestClusterContext::new_with_config
    - RoutingInfo::MultiNode
    - sort
    - into_iter
    - redis::ConnectionInfo::addr
    - ClusterClientBuilder::read_from_replicas
    - '&ConnectionAddr::to_string'
    - collect
    - Self::into_iter
    - bool::route_command
    - clone
    - sort_by
    - split_to_addresses_and_info
    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:325,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:325,1
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:329,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:331,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:333,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:333,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:334,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:334,1
    - Dst: bool::hgetall
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:335,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:335,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 350
      start: 324
    functionDepth: 9
    functionLinenumber: 324
    functionLinenumberEnd: 350
    functionName: cluster_async::cluster_resp3
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - bool::hset
    - bool::hgetall
    - TestClusterContext::new
    - Result::async_connection
    - use_protocol
    - unwrap
    - 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:354,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:356,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:357,1
    - Dst: Pipeline::add_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:358,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:358,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:358,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:358,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:358,1
    - Dst: Pipeline::add_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:359,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:359,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:359,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:359,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:359,1
    - Dst: Pipeline::exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:360,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:360,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:361,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:361,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:363,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 365
      start: 353
    functionDepth: 3
    functionLinenumber: 353
    functionLinenumberEnd: 365
    functionName: cluster_async::async_cluster_basic_pipe
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - TestClusterContext::new
    - Result::async_connection
    - bool::get
    - Pipeline::exec_async
    - Pipeline::add_command
    - clone
    - unwrap
    - Cmd::arg
    - cmd
    - 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:375,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:376,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:378,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:378,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:378,1
    - Dst: get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:378,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:383,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:383,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:383,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:383,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:384,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:384,1
    - Dst: '&mut Cmd::get_packed_command'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:384,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:385,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:385,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:394,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:395,1
    - Dst: redis::Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:395,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:395,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:395,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 402
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 402
    functionName: cluster_async::test_pipeline_returns_server_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - Err
    - MockEnv::new
    - redis::cmd
    - redis::Cmd::arg
    - parse_redis_value
    - get_packed_command
    - '&mut Cmd::get_packed_command'
    - exec_async
    - get
    - tokio::runtime::Runtime::block_on
    - RedisResult::unwrap
    - ignore
    - respond_startup
    - redis::Pipeline::set
    - Ok
    - redis::pipe
    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:406,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:408,1
    - Dst: bool::mset
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:410,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:410,1
    - Dst: bool::mget
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:415,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 417
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 417
    functionName: cluster_async::async_cluster_multi_shard_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new
    - bool::mset
    - Result::async_connection
    - unwrap
    - bool::mget
    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:421,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:423,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:425,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:425,1
    - Dst: '&mut Pipeline::set'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:425,1
    - Dst: expire
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:425,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:425,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 434
      start: 420
    functionDepth: 9
    functionLinenumber: 420
    functionLinenumberEnd: 434
    functionName: cluster_async::async_cluster_can_run_a_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Pipeline::set'
    - TestClusterContext::new
    - Result::async_connection
    - redis::Pipeline::atomic
    - unwrap
    - expire
    - query_async
    - 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:441,1
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:446,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 453
      start: 438
    functionDepth: 10
    functionLinenumber: 438
    functionLinenumberEnd: 453
    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
    - Default::default
    - ClusterType::get_intended
    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:460,1
    - Dst: TestClusterContext::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:465,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:469,1
    - Dst: danger_accept_invalid_hostnames
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:471,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:474,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 476
      start: 457
    functionDepth: 10
    functionLinenumber: 457
    functionLinenumberEnd: 476
    functionName: cluster_async::async_cluster_danger_accept_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new_with_config_and_builder
    - Default::default
    - Result::async_connection
    - danger_accept_invalid_hostnames
    - smoke_test_connection
    - ClusterType::get_intended
    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:480,1
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:481,1
    - Dst: RedisClusterConfiguration::single_replica_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 489
      start: 479
    functionDepth: 10
    functionLinenumber: 479
    functionLinenumberEnd: 489
    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:494,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:494,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:494,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - redis
    argTypes:
    - '&mut redis::aio::MultiplexedConnection'
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: cluster_async::do_failover
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::exec_async'
    - cmd
    - Ok
    - Cmd::arg
    linkageType: ''
    returnType: Result
    signature: 'async fn do_failover(redis: &mut redis::aio::MultiplexedConnection,)
      -> Result<(), anyhow::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:504,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:504,1
    - Dst: '&TestClusterContext::async_connection'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:506,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:507,1
    - Dst: RedisServer::clear
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:510,1
    - Dst: iter_servers
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:512,1
    - Dst: RedisServer::client_addr
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:513,1
    - Dst: build_single_client
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:515,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:516,1
    - Dst: RedisResult::unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:515,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:522,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:522,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:527,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:527,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:527,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:527,1
    - Dst: redis::ConnectionInfo::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:532,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:532,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:535,1
    - Dst: flushall::<()>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:535,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:535,1
    - Dst: futures_time::time::Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:536,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:535,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:538,1
    - Dst: anyhow::Error::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:538,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:535,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:542,1
    - Dst: Ok::<(), anyhow::Error>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:544,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:556,1
    - Dst: bool::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:558,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:559,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:560,1
    - Dst: future::join_all
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:564,1
    - Dst: Self::iter_mut
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:565,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:565,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:567,1
    - Dst: do_failover
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:567,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:570,1
    - Dst: all
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:570,1
    - Dst: is_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:570,1
    - Dst: RedisResult::pop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:571,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:571,1
    - Dst: Ok::<_, anyhow::Error>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:573,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:577,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:577,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:577,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:577,1
    - Dst: Self::exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:577,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:577,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:584,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:584,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:584,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:584,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:584,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:591,1
    - Dst: Ok::<_, anyhow::Error>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:592,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                        cmd(\"SET\")\n \
        \                           .arg(&key)\n                            .arg(i)\n\
        \                            .clone()\n                            .exec_async(&mut\
        \ connection)\n                            .await\n                      \
        \      .unwrap();\n                        let res: i32 = cmd(\"GET\")\n \
        \                           .arg(key)\n                            .clone()\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:556,1
    - Dst: try_collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:556,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:556,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 157
    argCount: 4
    argNames:
    - env
    - requests
    - value
    - _mtls_enabled
    argTypes:
    - '&TestClusterContext'
    - i32
    - i32
    - bool
    constantsTouched: []
    func_position:
      end: 606
      start: 498
    functionDepth: 8
    functionLinenumber: 498
    functionLinenumberEnd: 606
    functionName: cluster_async::test_failover
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - try_collect
    - do_failover
    - Self::clone
    - Self::query_async
    - build_single_client
    - RedisResult::iter
    - map
    - ".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                        cmd(\"SET\")\n                            .arg(&key)\n\
      \                            .arg(i)\n                            .clone()\n\
      \                            .exec_async(&mut connection)\n                \
      \            .await\n                            .unwrap();\n              \
      \          let res: i32 = cmd(\"GET\")\n                            .arg(key)\n\
      \                            .clone()\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<_>>"
    - AtomicI32::new
    - unwrap
    - Arc::new
    - query_async
    - Self::iter_mut
    - Ok::<_, anyhow::Error>
    - Cmd::arg
    - anyhow::Error::from
    - cmd
    - redis::Cmd::new
    - flushall::<()>
    - Err
    - RedisServer::clear
    - RedisServer::connection_info
    - RedisResult::unwrap_or_else
    - Box::pin
    - iter_servers
    - get_multiplexed_async_connection
    - Self::fetch_add
    - expect
    - all
    - RedisServer::push
    - '&TestClusterContext::async_connection'
    - Self::exec_async
    - is_err
    - bool::clone
    - RedisResult::pop
    - redis::ConnectionInfo::get
    - '&mut Cmd::clone'
    - Ok
    - timeout
    - '&mut Cmd::arg'
    - RedisServer::client_addr
    - futures_time::time::Duration::from_secs
    - future::join_all
    - unwrap_or_else
    - Self::arg
    - Vec::new
    - clone
    - Ok::<(), anyhow::Error>
    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:662,1
    - Dst: async_generic_connection::<ErrorConnection>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:664,1
    - Dst: store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:666,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:667,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:667,1
    - Dst: store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:670,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 680
      start: 661
    functionDepth: 3
    functionLinenumber: 661
    functionLinenumberEnd: 680
    functionName: cluster_async::async_cluster_error_in_inner_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new
    - get
    - unwrap
    - store
    - async_generic_connection::<ErrorConnection>
    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:691,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:692,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:693,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:693,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:693,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:693,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:694,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:694,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:695,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:695,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:695,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:701,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:701,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:705,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:705,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:705,1
    - Dst: arg("test").query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 708
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 708
    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:
    - Err
    - contains_slice
    - MockEnv::new
    - Value::SimpleString
    - '&str::into'
    - tokio::runtime::Runtime::block_on
    - arg("test").query_async::<Value>
    - Cmd::arg
    - cmd
    - Value::Array
    - Ok
    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:719,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:720,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:721,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:721,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:721,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:721,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:722,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:722,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:723,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:723,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:723,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:742,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:742,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:746,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:746,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:746,1
    - Dst: arg("test").query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:746,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 749
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 749
    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:
    - Err
    - contains_slice
    - MockEnv::new
    - Value::SimpleString
    - '&str::into'
    - tokio::runtime::Runtime::block_on
    - arg("test").query_async::<Value>
    - Cmd::arg
    - cmd
    - Value::Array
    - Ok
    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:755,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: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:765,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:767,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:768,1
    - Dst: parse_redis_value
      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: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:769,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:769,1
    - Dst: '&str::to_vec'
      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: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 781
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 781
    functionName: cluster_async::test_async_cluster_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - Err
    - Value::BulkString
    - parse_redis_value
    - Cmd::arg
    - MockEnv::with_client_builder
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - tokio::runtime::Runtime::block_on
    - fetch_add
    - '&str::to_vec'
    - respond_startup
    - cmd
    - ClusterClientBuilder::retries
    - atomic::AtomicUsize::new
    - Ok
    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:787,1
    - Dst: atomic::AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:787,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:794,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:795,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:795,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:798,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:800,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:801,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:802,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:802,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:807,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:808,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:808,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 818
      start: 784
    functionDepth: 8
    functionLinenumber: 784
    functionLinenumberEnd: 818
    functionName: cluster_async::test_async_cluster_tryagain_exhaust_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClientBuilder::retries
    - ClusterClient::builder
    - Err
    - parse_redis_value
    - MockEnv::with_client_builder
    - clone
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - tokio::runtime::Runtime::block_on
    - Arc::new
    - fetch_add
    - Cmd::arg
    - respond_startup
    - cmd
    - atomic::AtomicUsize::new
    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:824,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:825,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:826,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:833,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:834,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:835,1
    - Dst: RedisServer::store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:837,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:839,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:840,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:840,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:840,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:840,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:843,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:845,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:846,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:846,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:846,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:846,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:849,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:849,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:850,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:853,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:853,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:856,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:856,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:856,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:883,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:884,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:884,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:884,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 890
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 890
    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:
    - Value::BulkString
    - RedisServer::load
    - tokio::runtime::Runtime::block_on
    - fetch_add
    - '&str::to_vec'
    - Cmd::arg
    - cmd
    - Value::Array
    - Err
    - MockEnv::new
    - parse_redis_value
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - atomic::AtomicUsize::new
    - contains_slice
    - as_bytes
    - '&str::into'
    - respond_startup
    - Ok
    - RedisServer::store
    - atomic::AtomicBool::new
    - Value::SimpleString
    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:896,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:903,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:904,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:904,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:907,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:908,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:911,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:912,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:912,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:912,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:912,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:915,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:915,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:916,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:916,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:916,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:936,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:937,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:937,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:937,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:937,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:944,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:944,1
    - Dst: as_bytes
      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:955,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:955,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:955,1
    - Dst: arg("test").query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:955,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:967,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:968,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:968,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:968,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 974
      start: 893
    functionDepth: 2
    functionLinenumber: 893
    functionLinenumberEnd: 974
    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:
    - Value::BulkString
    - RedisServer::load
    - tokio::runtime::Runtime::block_on
    - '&str::to_vec'
    - Cmd::arg
    - cmd
    - Value::Array
    - ClusterClientBuilder::retries
    - ClusterClient::builder
    - Err
    - parse_redis_value
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - arg("test").query_async::<Value>
    - contains_slice
    - as_bytes
    - MockEnv::with_client_builder
    - '&str::into'
    - respond_startup
    - Ok
    - atomic::AtomicBool::new
    - Value::SimpleString
    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:980,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:981,1
    - Dst: atomic::AtomicU16::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:981,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:982,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:989,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:990,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:990,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:993,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:996,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:997,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1001,1
    - Dst: RedisServer::swap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1003,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1004,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1004,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1004,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1006,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1006,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1006,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1006,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1018,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1018,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1019,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1020,1
    - Dst: '&''static str::to_string'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1021,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1032,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1032,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1033,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1034,1
    - Dst: '&''static str::to_string'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1035,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 977
    functionDepth: 8
    functionLinenumber: 977
    functionLinenumberEnd: 1043
    functionName: cluster_async::test_async_cluster_reconnect_even_with_zero_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - tokio::runtime::Runtime::block_on
    - Arc::new
    - '&str::to_vec'
    - cmd
    - RedisServer::swap
    - ClusterClientBuilder::retries
    - ClusterClient::builder
    - Err
    - RedisServer::fetch_add
    - atomic::AtomicU16::new
    - broken_pipe_error
    - contains_slice
    - MockEnv::with_client_builder
    - '&''static str::to_string'
    - RedisServer::clone
    - RoutingInfo::SingleNode
    - respond_startup
    - Ok
    - atomic::AtomicBool::new
    - bool::route_command
    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:1048,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1048,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1054,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1055,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1059,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1062,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1065,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1065,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1073,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1073,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1077,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1077,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1077,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1077,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1087,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1088,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1088,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1088,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1046
    functionDepth: 8
    functionLinenumber: 1046
    functionLinenumberEnd: 1094
    functionName: cluster_async::test_async_cluster_ask_redirect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - Err
    - Value::BulkString
    - parse_redis_value
    - Cmd::arg
    - MockEnv::with_client_builder
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - AtomicI32::new
    - tokio::runtime::Runtime::block_on
    - Arc::new
    - RedisServer::fetch_add
    - '&str::to_vec'
    - cmd
    - respond_startup_two_nodes
    - Ok
    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:1099,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1099,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1100,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1106,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1107,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1112,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1113,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1113,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1118,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1119,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1121,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1122,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1122,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1128,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1129,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1129,1
    - Dst: arg("test").query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1129,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1097
    functionDepth: 8
    functionLinenumber: 1097
    functionLinenumberEnd: 1134
    functionName: cluster_async::test_async_cluster_ask_save_new_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - Err
    - contains_slice
    - parse_redis_value
    - MockEnv::with_client_builder
    - RedisServer::clone
    - AtomicI32::new
    - tokio::runtime::Runtime::block_on
    - arg("test").query_async::<Value>
    - Arc::new
    - unwrap
    - Cmd::arg
    - Self::fetch_add
    - cmd
    - respond_startup_two_nodes
    - Ok
    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:1139,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1139,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1145,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1147,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1147,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1147,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1149,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1150,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1153,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1153,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1154,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1159,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1159,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1159,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1159,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1165,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1166,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1166,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1137
    functionDepth: 8
    functionLinenumber: 1137
    functionLinenumberEnd: 1172
    functionName: cluster_async::test_async_cluster_reset_routing_if_redirect_fails
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Err
    - MockEnv::new
    - Value::BulkString
    - as_bytes
    - parse_redis_value
    - Cmd::arg
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - AtomicI32::new
    - tokio::runtime::Runtime::block_on
    - Arc::new
    - RedisServer::fetch_add
    - '&str::to_vec'
    - cmd
    - respond_startup_two_nodes
    - broken_pipe_error
    - Ok
    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:1177,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1177,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1183,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1184,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1188,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1191,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1193,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1193,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1203,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1203,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1207,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1207,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1217,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1218,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1175
    functionDepth: 8
    functionLinenumber: 1175
    functionLinenumberEnd: 1223
    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:
    - ClusterClient::builder
    - Err
    - parse_redis_value
    - query_async::<Value>
    - MockEnv::with_client_builder
    - AtomicI32::new
    - tokio::runtime::Runtime::block_on
    - Arc::new
    - RedisServer::fetch_add
    - cmd
    - respond_startup_two_nodes
    - Ok
    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:1229,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1230,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1237,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1238,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1239,1
    - Dst: RedisServer::store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1241,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1243,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1244,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1244,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1244,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1244,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1247,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1251,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1251,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1252,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1257,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1257,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1262,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1262,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1262,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1262,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: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1226
    functionDepth: 2
    functionLinenumber: 1226
    functionLinenumberEnd: 1277
    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:
    - Value::BulkString
    - RedisServer::load
    - tokio::runtime::Runtime::block_on
    - fetch_add
    - Cmd::arg
    - '&str::to_vec'
    - cmd
    - Err
    - MockEnv::new
    - parse_redis_value
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - atomic::AtomicUsize::new
    - contains_slice
    - as_bytes
    - '&str::into'
    - respond_startup
    - Ok
    - RedisServer::store
    - atomic::AtomicBool::new
    - Value::SimpleString
    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:1289,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1290,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1290,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1290,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1295,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1297,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1297,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1297,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1297,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1303,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1304,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1304,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1304,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1316,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1317,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1317,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1317,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1322,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1324,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1324,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1324,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1324,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1330,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1331,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1331,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1331,1
    - Dst: "arg(\"test\")\n                .arg(\"123\")\n                .query_async::<Option<Value>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1280
    functionDepth: 1
    functionLinenumber: 1280
    functionLinenumberEnd: 1337
    functionName: cluster_async::test_async_cluster_replica_read
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - ClusterClient::builder
    - respond_startup_with_replica
    - Err
    - Value::BulkString
    - Value::SimpleString
    - ClusterClientBuilder::read_from_replicas
    - MockEnv::with_client_builder
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - '&str::into'
    - "arg(\"test\")\n                .arg(\"123\")\n                .query_async::<Option<Value>>"
    - tokio::runtime::Runtime::block_on
    - '&str::to_vec'
    - Cmd::arg
    - cmd
    - ClusterClientBuilder::retries
    - Ok
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_replica_read()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1345,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1345,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1345,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1346,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1347,1
    - Dst: RedisFuture::split_whitespace
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1348,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1349,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1351,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1358,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1359,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1359,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1359,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1364,1
    - Dst: Option<Vec<MockSlotRange>>::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1367,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1370,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1370,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1370,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1371,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1371,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1371,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1371,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1373,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1377,1
    - Dst: query_async::<Option<()>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1377,1
    - Dst: RedisServer::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1378,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1378,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 4
    argNames:
    - name
    - command
    - expected_ports
    - slots_config
    argTypes:
    - '&''static str'
    - '&''static str'
    - Vec<u16>
    - Option<Vec<MockSlotRange>>
    constantsTouched: []
    func_position:
      end: 1381
      start: 1339
    functionDepth: 8
    functionLinenumber: 1339
    functionLinenumberEnd: 1381
    functionName: cluster_async::test_async_cluster_fan_out
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - RedisServer::lock
    - Cmd::get_packed_command
    - tokio::runtime::Runtime::block_on
    - Arc::new
    - Cmd::arg
    - ClusterClientBuilder::retries
    - ClusterClient::builder
    - std::sync::Mutex::new
    - Err
    - Cmd::new
    - Option<Vec<MockSlotRange>>::clone
    - Self::unwrap
    - sort
    - RedisFuture::split_whitespace
    - MockEnv::with_client_builder
    - ClusterClientBuilder::read_from_replicas
    - '&str::into'
    - RedisServer::clone
    - push
    - Ok
    - query_async::<Option<()>>
    - Value::SimpleString
    - Vec::new
    - respond_startup_with_replica_using_config
    - Self::lock
    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:1385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1384
    functionDepth: 9
    functionLinenumber: 1384
    functionLinenumberEnd: 1391
    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:1395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1394
    functionDepth: 9
    functionLinenumber: 1394
    functionLinenumberEnd: 1401
    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:1405,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1404
    functionDepth: 9
    functionLinenumber: 1404
    functionLinenumberEnd: 1422
    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:1426,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1425
    functionDepth: 9
    functionLinenumber: 1425
    functionLinenumberEnd: 1453
    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:1459,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1459,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1459,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1460,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1468,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1469,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1469,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1469,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1474,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1475,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1475,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1475,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1476,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1476,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1480,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1481,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1482,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1482,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1483,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1484,1
    - Dst: RedisServer::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1487,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1487,1
    - Dst: RedisServer::sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1488,1
    - Dst: RedisServer::clear
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1490,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1493,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1493,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1494,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1495,1
    - Dst: RedisServer::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1498,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1498,1
    - Dst: RedisServer::sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1499,1
    - Dst: RedisServer::clear
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1501,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1504,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1504,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1506,1
    - Dst: '&''static str::to_string'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1507,1
    - Dst: RedisServer::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1512,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1512,1
    - Dst: RedisServer::sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1513,1
    - Dst: RedisServer::clear
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1456
    functionDepth: 8
    functionLinenumber: 1456
    functionLinenumberEnd: 1517
    functionName: cluster_async::test_async_cluster_route_according_to_passed_argument
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - respond_startup_with_replica
    - RedisServer::lock
    - tokio::runtime::Runtime::block_on
    - Arc::new
    - Cmd::arg
    - cmd
    - ClusterClientBuilder::retries
    - ClusterClient::builder
    - std::sync::Mutex::new
    - Err
    - RedisServer::clear
    - Cmd::clone
    - RoutingInfo::MultiNode
    - Self::unwrap
    - RedisServer::sort
    - MockEnv::with_client_builder
    - ClusterClientBuilder::read_from_replicas
    - '&''static str::to_string'
    - RedisServer::clone
    - push
    - RoutingInfo::SingleNode
    - Ok
    - bool::route_command
    - Vec::new
    - Self::lock
    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:1522,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1523,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1523,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1530,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1531,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1531,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1531,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1536,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1539,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1539,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1539,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1543,1
    - Dst: query_async::<i64>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1544,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1520
    functionDepth: 1
    functionLinenumber: 1520
    functionLinenumberEnd: 1547
    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:
    - '&mut Cmd::arg'
    - ClusterClient::builder
    - Err
    - Cmd::new
    - Value::Int
    - MockEnv::with_client_builder
    - ClusterClientBuilder::read_from_replicas
    - query_async::<i64>
    - unwrap
    - tokio::runtime::Runtime::block_on
    - Cmd::arg
    - respond_startup_with_replica_using_config
    - ClusterClientBuilder::retries
    - Ok
    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:1552,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1553,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1553,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1553,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1553,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1553,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1553,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1565,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1566,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1566,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1566,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1571,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1574,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1574,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1574,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1581,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1581,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1581,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1593,1
    - Dst: query_async::<Vec<i64>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1594,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1550
    functionDepth: 1
    functionLinenumber: 1550
    functionLinenumberEnd: 1597
    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:
    - '&mut Cmd::arg'
    - ClusterClient::builder
    - Err
    - Cmd::new
    - MockEnv::with_client_builder
    - arg
    - ClusterClientBuilder::read_from_replicas
    - Value::Array
    - query_async::<Vec<i64>>
    - unwrap
    - tokio::runtime::Runtime::block_on
    - Cmd::arg
    - respond_startup_with_replica_using_config
    - ClusterClientBuilder::retries
    - Ok
    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:1602,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1603,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1609,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1610,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1610,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1610,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1615,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1617,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1617,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1619,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1619,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1619,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1619,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1627,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1628,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1600
    functionDepth: 1
    functionLinenumber: 1600
    functionLinenumberEnd: 1631
    functionName: cluster_async::test_async_cluster_fan_out_and_return_one_succeeded_response
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - Err
    - Cmd::new
    - std::io::Error::new
    - RedisError::from
    - query_async::<Value>
    - MockEnv::with_client_builder
    - ClusterClientBuilder::read_from_replicas
    - unwrap
    - tokio::runtime::Runtime::block_on
    - Cmd::arg
    - respond_startup_with_replica_using_config
    - ClusterClientBuilder::retries
    - Ok
    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:1636,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1637,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1643,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1644,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1644,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1644,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1649,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1650,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1650,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1654,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1655,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1634
    functionDepth: 1
    functionLinenumber: 1634
    functionLinenumberEnd: 1658
    functionName: cluster_async::test_async_cluster_fan_out_and_return_nil_if_no_other_value_was_received
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - Err
    - Cmd::new
    - query_async::<Value>
    - MockEnv::with_client_builder
    - ClusterClientBuilder::read_from_replicas
    - unwrap
    - tokio::runtime::Runtime::block_on
    - Cmd::arg
    - respond_startup_with_replica_using_config
    - ClusterClientBuilder::retries
    - Ok
    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:1663,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1664,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1664,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1670,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1671,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1671,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1671,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1676,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1678,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1678,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1679,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1678,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1686,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1687,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1661
    functionDepth: 1
    functionLinenumber: 1661
    functionLinenumberEnd: 1690
    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:
    - '&mut Cmd::arg'
    - ClusterClient::builder
    - Err
    - into
    - Cmd::new
    - query_async::<Value>
    - MockEnv::with_client_builder
    - ClusterClientBuilder::read_from_replicas
    - tokio::runtime::Runtime::block_on
    - Cmd::arg
    - respond_startup_with_replica_using_config
    - ClusterClientBuilder::retries
    - unwrap_err
    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:1695,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1701,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1702,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1702,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1702,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1707,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1708,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1708,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1712,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1713,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1693
    functionDepth: 1
    functionLinenumber: 1693
    functionLinenumberEnd: 1716
    functionName: cluster_async::test_async_cluster_fan_out_and_return_all_succeeded_response
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - Err
    - query_async::<Value>
    - ClusterClientBuilder::read_from_replicas
    - MockEnv::with_client_builder
    - unwrap
    - tokio::runtime::Runtime::block_on
    - respond_startup_with_replica_using_config
    - cmd
    - ClusterClientBuilder::retries
    - Ok
    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:1721,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1727,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1728,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1728,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1728,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1733,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1735,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1735,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1736,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1735,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1741,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1741,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1745,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1746,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1749
    functionName: cluster_async::test_async_cluster_fan_out_and_fail_all_succeeded_if_there_is_a_single_failure
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - Err
    - into
    - query_async::<Value>
    - ClusterClientBuilder::read_from_replicas
    - MockEnv::with_client_builder
    - tokio::runtime::Runtime::block_on
    - respond_startup_with_replica_using_config
    - cmd
    - ClusterClientBuilder::retries
    - unwrap_err
    - Ok
    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:1754,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1760,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1761,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1761,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1761,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1766,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1768,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1768,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1768,1
    - Dst: '&str::as_bytes'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1768,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1768,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1770,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1770,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1774,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1775,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1774,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1752
    functionDepth: 1
    functionLinenumber: 1752
    functionLinenumberEnd: 1778
    functionName: cluster_async::test_async_cluster_fan_out_and_return_one_succeeded_ignoring_empty_values
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - Err
    - Value::BulkString
    - '&str::as_bytes'
    - to_vec
    - query_async::<String>
    - ClusterClientBuilder::read_from_replicas
    - MockEnv::with_client_builder
    - unwrap
    - tokio::runtime::Runtime::block_on
    - respond_startup_with_replica_using_config
    - cmd
    - ClusterClientBuilder::retries
    - Ok
    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:1783,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1784,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1784,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1790,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1791,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1791,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1791,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1796,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1797,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1797,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1797,1
    - Dst: into_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1798,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1804,1
    - Dst: query_async::<Vec<(String, String)>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1805,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1804,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1781
    functionDepth: 1
    functionLinenumber: 1781
    functionLinenumberEnd: 1818
    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:
    - '&mut Cmd::arg'
    - ClusterClient::builder
    - Err
    - Value::BulkString
    - Cmd::new
    - sort
    - MockEnv::with_client_builder
    - ClusterClientBuilder::read_from_replicas
    - query_async::<Vec<(String, String)>>
    - unwrap
    - tokio::runtime::Runtime::block_on
    - into_bytes
    - Cmd::arg
    - respond_startup_with_replica_using_config
    - ClusterClientBuilder::retries
    - Ok
    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:1823,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1829,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1830,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1830,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1830,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1835,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1836,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1836,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1836,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1842,1
    - Dst: query_async::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1843,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1842,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1821
    functionDepth: 1
    functionLinenumber: 1821
    functionLinenumberEnd: 1851
    functionName: cluster_async::test_async_cluster_fan_out_and_combine_arrays_of_values
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - Err
    - sort
    - ClusterClientBuilder::read_from_replicas
    - MockEnv::with_client_builder
    - Value::Array
    - unwrap
    - tokio::runtime::Runtime::block_on
    - query_async::<Vec<String>>
    - respond_startup_with_replica_using_config
    - cmd
    - ClusterClientBuilder::retries
    - Ok
    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:1856,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1857,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1857,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1857,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1863,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1864,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1864,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1864,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1869,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1870,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1870,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1871,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1871,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1874,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1875,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1875,1
    - Dst: into_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1876,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1871,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1883,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1883,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1883,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1887,1
    - Dst: query_async::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1888,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1887,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1854
    functionDepth: 2
    functionLinenumber: 1854
    functionLinenumberEnd: 1891
    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:
    - Value::BulkString
    - iter
    - unwrap
    - tokio::runtime::Runtime::block_on
    - std::str::from_utf8
    - Cmd::arg
    - cmd
    - ClusterClientBuilder::retries
    - Value::Array
    - ClusterClient::builder
    - contains
    - Err
    - arg
    - query_async::<Vec<String>>
    - filter_map
    - MockEnv::with_client_builder
    - ClusterClientBuilder::read_from_replicas
    - into_bytes
    - Ok
    - '&mut Cmd::arg'
    - collect
    - Some
    - respond_startup_with_replica_using_config
    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:1896,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1897,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1897,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1897,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1898,1
    - Dst: AtomicU16::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1898,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1899,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1905,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1906,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1906,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1909,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1910,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1910,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1911,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1912,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1914,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1915,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1915,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1916,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1919,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1919,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1922,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1923,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1923,1
    - Dst: into_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1924,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1919,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1931,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1931,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1931,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1935,1
    - Dst: query_async::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1936,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1935,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1894
    functionDepth: 8
    functionLinenumber: 1894
    functionLinenumberEnd: 1940
    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:
    - Value::BulkString
    - iter
    - unwrap
    - tokio::runtime::Runtime::block_on
    - Arc::new
    - std::str::from_utf8
    - Cmd::arg
    - cmd
    - AtomicU16::new
    - Value::Array
    - ClusterClient::builder
    - contains
    - Err
    - parse_redis_value
    - arg
    - query_async::<Vec<String>>
    - Self::fetch_add
    - filter_map
    - as_bytes
    - MockEnv::with_client_builder
    - ClusterClientBuilder::read_from_replicas
    - RedisServer::clone
    - into_bytes
    - Ok
    - '&mut Cmd::arg'
    - collect
    - Some
    - respond_startup_with_replica_using_config
    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:1944,1
    - Dst: username
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1945,1
    - Dst: RedisCluster::username
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1946,1
    - Dst: '&''static str::password'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1945,1
    - Dst: RedisCluster::password
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1947,1
    - Dst: Result::disable_default_user
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1949,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1951,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1952,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1952,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1952,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1952,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1952,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1958,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1958,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1958,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1958,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1958,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1943
    functionDepth: 1
    functionLinenumber: 1943
    functionLinenumberEnd: 1965
    functionName: cluster_async::async_cluster_with_username_and_password
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - Result::async_connection
    - RedisCluster::password
    - username
    - Self::query_async
    - '&''static str::password'
    - Result::disable_default_user
    - exec_async
    - unwrap
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - Cmd::arg
    - '&mut Cmd::clone'
    - RedisCluster::username
    - cmd
    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:1970,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1970,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1976,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1977,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1977,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1980,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1985,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1986,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1986,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1986,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1986,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1990,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1990,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1990,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1990,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1996,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1997,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1997,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1997,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1968
    functionDepth: 8
    functionLinenumber: 1968
    functionLinenumberEnd: 2003
    functionName: cluster_async::test_async_cluster_io_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - Err
    - Value::BulkString
    - std::io::Error::new
    - respond_startup_two_nodes
    - Cmd::arg
    - RedisError::from
    - MockEnv::with_client_builder
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - AtomicI32::new
    - tokio::runtime::Runtime::block_on
    - Arc::new
    - RedisServer::fetch_add
    - '&str::to_vec'
    - cmd
    - ClusterClientBuilder::retries
    - Ok
    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:2008,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2008,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2014,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2015,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2017,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2020,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2021,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2021,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2021,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2021,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2025,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2026,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2026,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 2006
    functionDepth: 8
    functionLinenumber: 2006
    functionLinenumberEnd: 2033
    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:
    - Err
    - MockEnv::new
    - into
    - Self::clone
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - AtomicI32::new
    - tokio::runtime::Runtime::block_on
    - Arc::new
    - Cmd::arg
    - Self::fetch_add
    - cmd
    - 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:2038,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2056,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2057,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2057,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2057,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2062,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2065,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2067,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2067,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2067,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2067,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2071,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2071,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2036
    functionDepth: 3
    functionLinenumber: 2036
    functionLinenumberEnd: 2073
    functionName: cluster_async::test_async_cluster_can_be_created_with_partial_slot_coverage
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - Err
    - redis::cmd
    - Value::SimpleString
    - bool::req_packed_command
    - Some
    - ClusterClientBuilder::read_from_replicas
    - MockEnv::with_client_builder
    - clone
    - '&str::into'
    - tokio::runtime::Runtime::block_on
    - respond_startup_with_replica_using_config
    - ClusterClientBuilder::retries
    - Ok
    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:2078,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2078,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2080,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2081,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2083,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2084,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2086,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2087,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2093,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2076
    functionDepth: 5
    functionLinenumber: 2076
    functionLinenumberEnd: 2097
    functionName: cluster_async::async_cluster_handle_complete_server_disconnect_without_panicking
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Result::async_connection
    - drop
    - bool::route_command
    - bool::req_packed_command
    - Cmd::clone
    - RoutingInfo::SingleNode
    - cmd
    - retries
    - TestClusterContext::new_with_cluster_client_builder
    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:2101,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2102,1
    - Dst: Result::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2105,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2107,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2108,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2110,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2112,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2114,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2115,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2122,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2126,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2127,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2128,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2131,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2100
    functionDepth: 11
    functionLinenumber: 2100
    functionLinenumberEnd: 2133
    functionName: cluster_async::async_cluster_reconnect_after_complete_server_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - Result::async_connection
    - RedisCluster::new
    - drop
    - bool::route_command
    - bool::req_packed_command
    - Result::get_ports
    - Cmd::clone
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - unwrap
    - RoutingInfo::SingleNode
    - cmd
    - retries
    - Vec::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:2137,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2138,1
    - Dst: Result::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2141,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2143,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2144,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2147,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2148,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2149,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2153,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2155,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2156,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2158,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2164
      start: 2136
    functionDepth: 11
    functionLinenumber: 2136
    functionLinenumberEnd: 2164
    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:
    - Default::default
    - Result::async_connection
    - RedisCluster::new
    - drop
    - bool::route_command
    - Some
    - Result::get_ports
    - unwrap
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - RoutingInfo::MultiNode
    - cmd
    - retries
    - Vec::clone
    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:2169,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2169,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2170,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2171,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2178,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2179,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2179,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2183,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2184,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2184,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2185,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2189,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2190,1
    - Dst: RedisServer::load
      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:2200,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2205,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2205,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2205,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2207,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2208,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2213,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2213,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2213,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2215,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2215,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2215,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2215,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2222,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2223,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2223,1
    - Dst: "arg(\"test\")\n                    .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2223,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2167
    functionDepth: 8
    functionLinenumber: 2167
    functionLinenumberEnd: 2233
    functionName: cluster_async::test_async_cluster_saves_reconnected_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - RedisServer::load
    - "arg(\"test\")\n                    .query_async::<Option<i32>>"
    - AtomicI32::new
    - tokio::runtime::Runtime::block_on
    - Arc::new
    - '&str::to_vec'
    - Cmd::arg
    - cmd
    - ClusterClientBuilder::retries
    - ClusterClient::builder
    - Err
    - parse_redis_value
    - RedisServer::fetch_add
    - Self::fetch_add
    - broken_pipe_error
    - contains_slice
    - as_bytes
    - MockEnv::with_client_builder
    - RedisServer::clone
    - Ok
    - respond_startup_two_nodes
    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:2242,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2242,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2242,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2242,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2242,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:2242,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2242,1
    - Dst: pop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2242,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2242,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2242,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2254,1
    - Dst: RedisResult::as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2254,1
    - Dst: windows
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2254,1
    - Dst: filter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2254,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut impl redis::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 2259
      start: 2239
    functionDepth: 2
    functionLinenumber: 2239
    functionLinenumberEnd: 2259
    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:
    - filter
    - '&mut Cmd::cmd'
    - "cmd(\"GET\")\n                .arg(\"LIST\")\n                .cmd(\"CLIENT\"\
      )\n                .arg(\"LIST\")\n                .query_async::<Vec<Option<String>>>"
    - redis::Cmd::arg
    - windows
    - pipe
    - RedisResult::as_bytes
    - count
    - Pipeline::cmd
    - unwrap
    - pop
    - Ok
    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:2237,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2237,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2261,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2262,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2266,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2267,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2268,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2268,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2268,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2268,1
    - Dst: fuse
      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:2278,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2278,1
    - Dst: fuse
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2278,1
    - Dst: futures::future::select
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2280,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2281,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2283,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2283,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2236
    functionDepth: 5
    functionLinenumber: 2236
    functionLinenumberEnd: 2286
    functionName: cluster_async::kill_connection_on_drop_even_when_blocking
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - futures::future::select
    - Box::pin
    - drop
    - exec_async
    - fuse
    - unwrap
    - TestClusterContext::async_connection
    - futures_time::task::sleep
    - Cmd::arg
    - futures_time::time::Duration::from_millis
    - cmd
    - retries
    - TestClusterContext::new_with_cluster_client_builder
    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:2291,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2292,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2293,1
    - Dst: AtomicU32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2293,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2294,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2299,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2300,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2300,1
    - Dst: ClusterClientBuilder::max_retry_wait
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2300,1
    - Dst: ClusterClientBuilder::min_retry_wait
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2300,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2306,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2309,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2310,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2310,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2311,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2310,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2317,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2317,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2321,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2322,1
    - Dst: RedisResult::timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2322,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2324,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2322,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2332,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2332,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2332,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2289
    functionDepth: 8
    functionLinenumber: 2289
    functionLinenumberEnd: 2336
    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:
    - AtomicU32::new
    - Cmd::get_packed_command
    - tokio::runtime::Runtime::block_on
    - Arc::new
    - cmd
    - ClusterClientBuilder::retries
    - ClusterClientBuilder::max_retry_wait
    - sleep
    - ClusterClient::builder
    - Err
    - Self::fetch_add
    - into
    - MockEnv::with_client_builder
    - RedisServer::clone
    - futures_time::time::Duration::from_millis
    - respond_startup
    - Ok
    - Cmd::exec_async
    - Duration::from_millis
    - ClusterClientBuilder::min_retry_wait
    - RedisResult::timeout
    - unwrap_err
    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:2340,1
    - Dst: get_pending_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2342,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2344,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2346
      start: 2339
    functionDepth: 9
    functionLinenumber: 2339
    functionLinenumberEnd: 2346
    functionName: cluster_async::async_cluster_connect_lazily
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - get_pending_async_connection_with_config
    - TestClusterContext::new
    - smoke_test_connection
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_connect_lazily()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2350,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2351,1
    - Dst: redis::Pipeline::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2353,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2353,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2353,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2360,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2360,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2366
      start: 2349
    functionDepth: 10
    functionLinenumber: 2349
    functionLinenumberEnd: 2366
    functionName: cluster_async::fail_on_empty_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - query_async::<String>
    - TestClusterContext::new
    - Result::async_connection
    - redis::Pipeline::new
    - unwrap_err
    - redis::Cmd::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:2375,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2377,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2377,1
    - Dst: '&mut Cmd::to_owned'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2377,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2378,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2375,1
    - Dst: from_redis_value::<InfoDict>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2382,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2382,1
    - Dst: parse_version
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut ClusterConnection'
    constantsTouched: []
    func_position:
      end: 2384
      start: 2374
    functionDepth: 1
    functionLinenumber: 2374
    functionLinenumberEnd: 2384
    functionName: cluster_async::check_if_redis_6
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::to_owned'
    - parse_version
    - unwrap
    - RoutingInfo::SingleNode
    - Cmd::arg
    - cmd
    - RedisResult::route_command
    - from_redis_value::<InfoDict>
    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:2391,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2391,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2392,1
    - Dst: '&mut ClusterConnection::psubscribe'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2404,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2404,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2405,1
    - Dst: '&mut ClusterConnection::ssubscribe'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2415,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2415,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2416,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: 2425
      start: 2386
    functionDepth: 2
    functionLinenumber: 2386
    functionLinenumberEnd: 2425
    functionName: cluster_async::subscribe_to_channels
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut ClusterConnection::ssubscribe'
    - '&mut ClusterConnection::psubscribe'
    - '&mut ClusterConnection::subscribe'
    - unwrap
    - get_push
    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:2428,1
    - Dst: Result::timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2428,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2429,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2428,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - rx
    argTypes:
    - '&mut UnboundedReceiver<PushInfo>'
    constantsTouched: []
    func_position:
      end: 2433
      start: 2427
    functionDepth: 13
    functionLinenumber: 2427
    functionLinenumberEnd: 2433
    functionName: cluster_async::get_push
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut UnboundedReceiver<PushInfo>::recv'
    - Result::timeout
    - futures_time::time::Duration::from_millis
    - unwrap
    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:2440,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2440,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2444,1
    - Dst: '&mut ClusterConnection::publish'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2456,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2456,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2460,1
    - Dst: '&mut ClusterConnection::spublish'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2474,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2474,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2475,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: 2487
      start: 2435
    functionDepth: 14
    functionLinenumber: 2435
    functionLinenumberEnd: 2487
    functionName: cluster_async::check_publishing
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - '&mut ClusterConnection::publish'
    - get_push
    - '&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:2491,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2492,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2493,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2493,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2495,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2500,1
    - Dst: subscribe_to_channels
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2502,1
    - Dst: check_publishing
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2505
      start: 2490
    functionDepth: 16
    functionLinenumber: 2490
    functionLinenumberEnd: 2505
    functionName: cluster_async::pub_sub_subscription
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - tokio::sync::mpsc::unbounded_channel
    - ProtocolVersion::push_sender
    - use_protocol
    - clone
    - check_if_redis_6
    - check_publishing
    - subscribe_to_channels
    - TestClusterContext::new_with_cluster_client_builder
    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:2509,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2510,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2511,1
    - Dst: redis::cluster::ClusterConfig::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2513,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2513,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2513,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2519,1
    - Dst: subscribe_to_channels
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2521,1
    - Dst: check_publishing
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2508
    functionDepth: 16
    functionLinenumber: 2508
    functionLinenumberEnd: 2524
    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
    - tokio::sync::mpsc::unbounded_channel
    - use_protocol
    - redis::cluster::ClusterConfig::new
    - clone
    - check_if_redis_6
    - check_publishing
    - subscribe_to_channels
    - TestClusterContext::new_with_cluster_client_builder
    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:2528,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2529,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2532,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2533,1
    - Dst: ssubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2537,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2537,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2539,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2539,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2539,1
    - Dst: "arg(\"SHARDNUMSUB\")\n                .arg(\"foo\")\n                .query_async::<(String,\
        \ usize)>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2539,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2546
      start: 2527
    functionDepth: 2
    functionLinenumber: 2527
    functionLinenumberEnd: 2546
    functionName: cluster_async::pub_sub_shardnumsub
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - use_protocol
    - check_if_redis_6
    - ssubscribe
    - unwrap
    - TestClusterContext::async_connection
    - "arg(\"SHARDNUMSUB\")\n                .arg(\"foo\")\n                .query_async::<(String,\
      \ usize)>"
    - Cmd::arg
    - cmd
    - TestClusterContext::new_with_cluster_client_builder
    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:2550,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2551,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2552,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2552,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2554,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2559,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2561,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2561,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2562,1
    - Dst: unsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2573,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2573,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2574,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2586,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2586,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2587,1
    - Dst: punsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2595,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2595,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2596,1
    - Dst: ssubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2606,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2606,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2607,1
    - Dst: sunsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2615,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2615,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2616,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2626,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2626,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2630,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2630,1
    - Dst: spublish
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2635,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2635,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2642
      start: 2549
    functionDepth: 15
    functionLinenumber: 2549
    functionLinenumberEnd: 2642
    functionName: cluster_async::pub_sub_unsubscription
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - spublish
    - tokio::sync::mpsc::unbounded_channel
    - publish
    - unsubscribe
    - ProtocolVersion::push_sender
    - use_protocol
    - clone
    - check_if_redis_6
    - ssubscribe
    - unwrap
    - get_push
    - subscribe
    - psubscribe
    - sunsubscribe
    - punsubscribe
    - TestClusterContext::new_with_cluster_client_builder
    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:2646,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2647,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2648,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2648,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2650,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2653,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2654,1
    - Dst: subscribe_to_channels
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2656,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2658,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2645
    functionDepth: 16
    functionLinenumber: 2645
    functionLinenumberEnd: 2667
    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:
    - tokio::sync::mpsc::unbounded_channel
    - ProtocolVersion::push_sender
    - drop
    - use_protocol
    - clone
    - check_if_redis_6
    - TestClusterContext::async_connection
    - subscribe_to_channels
    - TestClusterContext::new_with_cluster_client_builder
    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:2672,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2673,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2674,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2674,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2676,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2679,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2680,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2682,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2682,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2691,1
    - Dst: unsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2703,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2703,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2708,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2721,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2721,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2726,1
    - Dst: punsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2739,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2739,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2744,1
    - Dst: ssubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2758,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2758,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2763,1
    - Dst: sunsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2776,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2776,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2781,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2799
      start: 2670
    functionDepth: 15
    functionLinenumber: 2670
    functionLinenumberEnd: 2799
    functionName: cluster_async::multiple_subscribes_and_unsubscribes_work
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - tokio::sync::mpsc::unbounded_channel
    - unsubscribe
    - ProtocolVersion::push_sender
    - use_protocol
    - clone
    - check_if_redis_6
    - ssubscribe
    - unwrap
    - get_push
    - TestClusterContext::async_connection
    - subscribe
    - psubscribe
    - sunsubscribe
    - punsubscribe
    - TestClusterContext::new_with_cluster_client_builder
    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:2806,1
    - Dst: TestClusterContext::new_insecure_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2807,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2808,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2808,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2810,1
    - Dst: TestClusterContext::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2813,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2817,1
    - Dst: subscribe_to_channels
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2819,1
    - Dst: drop
      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:2826,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2837,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2838,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2839,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2849,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2851,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2852,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2854,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2849,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2861,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2862,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2862,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2863,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2863,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2865,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2865,1
    - Dst: check_publishing
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2888,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2802
    functionDepth: 16
    functionLinenumber: 2802
    functionLinenumberEnd: 2889
    functionName: cluster_async::pub_sub_reconnect_after_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - RedisCluster::new
    - drop
    - use_protocol
    - unwrap
    - TestClusterContext::get_ports
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - cmd
    - Vec::clone
    - RoutingInfo::MultiNode
    - tokio::sync::mpsc::unbounded_channel
    - ProtocolVersion::push_sender
    - push
    - subscribe_to_channels
    - route_command
    - Some
    - clone
    - check_if_redis_6
    - Vec::new
    - check_publishing
    - get_push
    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:2894,1
    - Dst: TestClusterContext::new_insecure_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2895,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2896,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2896,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2898,1
    - Dst: TestClusterContext::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2901,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2903,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2905,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2907,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2907,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2915,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2915,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2917,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2915,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2930,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2931,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2932,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2942,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2944,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2945,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2947,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2942,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2958
      start: 2892
    functionDepth: 15
    functionLinenumber: 2892
    functionLinenumberEnd: 2958
    functionName: cluster_async::pub_sub_should_not_reconnect_if_subscription_failed
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - RedisCluster::new
    - drop
    - use_protocol
    - recv
    - unwrap
    - TestClusterContext::get_ports
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - cmd
    - subscribe
    - Vec::clone
    - RoutingInfo::MultiNode
    - tokio::sync::mpsc::unbounded_channel
    - ProtocolVersion::push_sender
    - TestClusterContext::async_connection
    - futures_time::time::Duration::from_millis
    - timeout
    - route_command
    - Some
    - clone
    - unwrap_err
    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:2969,1
    - Dst: support::mtls_test::create_cluster_client_from_cluster
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2971,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2971,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2972,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2972,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2973,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2973,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2973,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2973,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2973,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2979,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2979,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2979,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2979,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2979,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2986
      start: 2968
    functionDepth: 1
    functionLinenumber: 2968
    functionLinenumberEnd: 2986
    functionName: cluster_async::async_cluster_basic_cmd_with_mtls
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - Result::unwrap
    - get_async_connection
    - support::mtls_test::create_cluster_client_from_cluster
    - Self::query_async
    - exec_async
    - unwrap
    - Cmd::arg
    - '&mut Cmd::clone'
    - cmd
    - TestClusterContext::new_with_mtls
    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:2990,1
    - Dst: support::mtls_test::create_cluster_client_from_cluster
      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
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2993,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2994,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2994,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2994,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2994,1
    - Dst: bool::is_ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3003,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3017
      start: 2989
    functionDepth: 11
    functionLinenumber: 2989
    functionLinenumberEnd: 3017
    functionName: cluster_async::async_cluster_should_not_connect_without_mtls_enabled
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - first
    - get_async_connection
    - support::mtls_test::create_cluster_client_from_cluster
    - connection_info
    - bool::is_ok
    - unwrap
    - addr
    - TestClusterContext::new_with_mtls
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_should_not_connect_without_mtls_enabled()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::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:
    - Self::size
    - ArbitraryValue
    - arbitrary_value
    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: 8
    functionLinenumber: 26
    functionLinenumberEnd: 92
    functionName: ArbitraryValue::shrink
    functionSourceFile: /src/redis-rs/redis/tests/parser.rs
    functionUses: 0
    functionsReached:
    - insert
    - PushKind::to_string
    - collect
    - Value::SimpleString
    - iter
    - map
    - clone
    - shrink
    - Box::new
    - ArbitraryValue
    - Box::map
    - "iter()\n                    .map(|x| ArbitraryValue(x.clone()))\n         \
      \           .collect::<Vec<_>>"
    - into_iter
    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: 8
    functionLinenumber: 150
    functionLinenumberEnd: 179
    functionName: PartialAsyncRead::poll_read
    functionSourceFile: /src/redis-rs/redis/tests/parser.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - RedisServer::poll_read
    - wake_by_ref
    - '&mut task::Context::remaining'
    - '&mut task::Context::take'
    - Pin<&mut Self>::waker
    - Pin::new
    - next
    - Self::filled
    - '&mut task::Context::advance'
    - Ok
    - io::Error::new
    - Poll::Ready
    - '&mut task::Context::initialize_unfilled'
    - len
    - std::cmp::min
    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
    - TestContext::connection
    - unwrap
    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
    - TestContext::connection
    - unwrap
    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: Self::limit
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 129
    functionDepth: 9
    functionLinenumber: 129
    functionLinenumberEnd: 180
    functionName: test_georadius
    functionSourceFile: /src/redis-rs/redis/tests/test_geospatial.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - geo_radius
    - Ord::cmp
    - redis::Connection::geo_radius
    - unwrap
    - RadiusOptions::default
    - TestContext::connection
    - sort_by
    - Self::with_dist
    - Self::order
    - Self::with_coord
    - Self::limit
    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: 9
    functionLinenumber: 183
    functionLinenumberEnd: 197
    functionName: test_georadius_by_member
    functionSourceFile: /src/redis-rs/redis/tests/test_geospatial.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::geo_radius_by_member
    - collect
    - iter
    - map
    - unwrap
    - RadiusOptions::default
    - Self::order
    - TestContext::connection
    - as_str
    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
    - expect
    - redis::Connection::acl_help
    - 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:
    - TestContext::new
    - redis::Connection::acl_getuser
    - unwrap
    - TestContext::connection
    - expect
    linkageType: ''
    returnType: void
    signature: fn test_acl_getsetdel_users()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:99,1
    - Dst: 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:
    - TestContext::new
    - iter
    - TestContext::connection
    - expect
    - redis::Connection::acl_cat_categoryname
    - redis::Connection::acl_cat
    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:
    - TestContext::new
    - redis::Connection::acl_genpass
    - redis::Connection::acl_genpass_bits
    - TestContext::connection
    - expect
    linkageType: ''
    returnType: void
    signature: fn test_acl_genpass()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:151,1
    - Dst: 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
    - TestContext::connection
    - redis::Connection::acl_log
    linkageType: ''
    returnType: void
    signature: fn test_acl_log()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:160,1
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_acl.rs:161,1
    - Dst: TestContext::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: redis::Connection::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: 26
    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:
    - TestContext::new
    - '&mut Cmd::arg'
    - redis::cmd
    - redis::Cmd::arg
    - redis::Connection::acl_dryrun
    - arg
    - unwrap
    - run_test_if_version_supported
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    - String::from
    linkageType: ''
    returnType: void
    signature: fn test_acl_dryrun()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:189,1
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_acl.rs:190,1
    - Dst: TestContext::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: 18
    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:
    - TestContext::new
    - expect
    - run_test_if_version_supported
    - TestContext::connection
    - RedisResult::acl_getuser
    - redis::ConnectionInfo::expect
    linkageType: ''
    returnType: void
    signature: fn test_acl_info()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:267,1
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_acl.rs:268,1
    - Dst: TestContext::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: 22
    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:
    - TestContext::new
    - RedisResult::acl_getuser
    - expect
    - run_test_if_version_supported
    - TestContext::connection
    - RedisResult::acl_setuser_rules
    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:334,1
    - Dst: env_logger::builder
      Src: /src/redis-rs/redis/tests/test_acl.rs:335,1
    - Dst: is_test
      Src: /src/redis-rs/redis/tests/test_acl.rs:336,1
    - Dst: std::env::var
      Src: /src/redis-rs/redis/tests/test_acl.rs:337,1
    - Dst: String::is_err
      Src: /src/redis-rs/redis/tests/test_acl.rs:337,1
    - Dst: filter_level
      Src: /src/redis-rs/redis/tests/test_acl.rs:338,1
    - Dst: init
      Src: /src/redis-rs/redis/tests/test_acl.rs:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 342
      start: 333
    functionDepth: 10
    functionLinenumber: 333
    functionLinenumberEnd: 342
    functionName: token_based_authentication_acl_tests::init_logger
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - std::env::var
    - call_once
    - String::is_err
    - env_logger::builder
    - is_test
    - filter_level
    - init
    linkageType: ''
    returnType: void
    signature: fn init_logger()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:619,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:620,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:622,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:622,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:624,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:624,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:624,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/tests/test_acl.rs:628,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:628,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:628,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:628,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:628,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:628,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:628,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:628,1
    - Dst: MockStreamingCredentialsProvider::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:640,1
    - Dst: RedisServer::start
      Src: /src/redis-rs/redis/tests/test_acl.rs:641,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:642,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:642,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:645,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:645,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:652,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:652,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_acl.rs:652,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:652,1
    - Dst: Self::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: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:666,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:666,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:666,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:666,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:666,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:673,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:673,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 679
      start: 618
    functionDepth: 8
    functionLinenumber: 618
    functionLinenumberEnd: 679
    functionName: token_based_authentication_acl_tests::test_authentication_with_mock_streaming_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - TestContext::async_connection
    - redis::cmd
    - Self::set_credentials_provider
    - redis::Cmd::arg
    - RedisServer::start
    - '&mut Cmd::query_async'
    - Self::query_async
    - redis::AsyncConnectionConfig::new
    - arg
    - unwrap
    - query_async
    - MockStreamingCredentialsProvider::new
    - '&mut Cmd::clone'
    - req_packed_command
    - get_multiplexed_async_connection_with_config
    - init_logger
    linkageType: ''
    returnType: void
    signature: async fn test_authentication_with_mock_streaming_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&TestContext::async_connection'
      Src: /src/redis-rs/redis/tests/test_acl.rs:683,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:683,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:684,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/tests/test_acl.rs:685,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:685,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:685,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:685,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:685,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:685,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:685,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:685,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - '&TestContext'
    constantsTouched: []
    func_position:
      end: 695
      start: 682
    functionDepth: 3
    functionLinenumber: 682
    functionLinenumberEnd: 695
    functionName: token_based_authentication_acl_tests::add_users_with_jwt_tokens
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - redis::cmd
    - redis::Cmd::arg
    - iter
    - arg
    - '&TestContext::async_connection'
    - unwrap
    - 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:699,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:700,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:701,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:701,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:701,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:702,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:702,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:702,1
    - Dst: add_users_with_jwt_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:706,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:710,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:711,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:712,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:712,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:715,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:715,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:722,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:722,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:728,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:728,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: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:737,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:737,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:742,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:742,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:745,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:745,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:751,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:751,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 755
      start: 698
    functionDepth: 4
    functionLinenumber: 698
    functionLinenumberEnd: 755
    functionName: token_based_authentication_acl_tests::test_token_rotation_with_mock_streaming_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - MockStreamingCredentialsProvider::multiple_tokens
    - redis::cmd
    - Self::set_credentials_provider
    - redis::Cmd::arg
    - start
    - Self::query_async
    - tokio::time::sleep
    - add_users_with_jwt_tokens
    - Duration::from_millis
    - redis::AsyncConnectionConfig::new
    - unwrap
    - '&mut Cmd::clone'
    - get_multiplexed_async_connection_with_config
    - init_logger
    linkageType: ''
    returnType: void
    signature: async fn test_token_rotation_with_mock_streaming_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:759,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:760,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:761,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:761,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:761,1
    - Dst: add_users_with_jwt_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:765,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens_with_errors
      Src: /src/redis-rs/redis/tests/test_acl.rs:770,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:771,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:772,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:772,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:775,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:775,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:782,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:782,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:788,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:788,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:790,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:790,1
    - Dst: tokio::time::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: 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: tokio::time::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: 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
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 814
      start: 758
    functionDepth: 4
    functionLinenumber: 758
    functionLinenumberEnd: 814
    functionName: token_based_authentication_acl_tests::test_authentication_error_handling_with_mock_streaming_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::cmd
    - Self::set_credentials_provider
    - redis::Cmd::arg
    - MockStreamingCredentialsProvider::multiple_tokens_with_errors
    - start
    - Self::query_async
    - add_users_with_jwt_tokens
    - tokio::time::sleep
    - Duration::from_millis
    - redis::AsyncConnectionConfig::new
    - unwrap
    - '&mut Cmd::clone'
    - get_multiplexed_async_connection_with_config
    - init_logger
    linkageType: ''
    returnType: void
    signature: async fn test_authentication_error_handling_with_mock_streaming_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:818,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:819,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:820,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:820,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:820,1
    - Dst: add_users_with_jwt_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:826,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:830,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:831,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:834,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:834,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:838,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:838,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:843,1
    - Dst: unwrap
      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:848,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:848,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:855,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:855,1
    - Dst: Self::query_async
      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: tokio::time::sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:863,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:863,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:868,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:868,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:870,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:870,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 881
      start: 817
    functionDepth: 4
    functionLinenumber: 817
    functionLinenumberEnd: 881
    functionName: token_based_authentication_acl_tests::test_multiple_connections_from_one_client_sharing_a_single_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - MockStreamingCredentialsProvider::multiple_tokens
    - redis::cmd
    - Self::set_credentials_provider
    - redis::Cmd::arg
    - start
    - into_iter
    - Self::query_async
    - add_users_with_jwt_tokens
    - tokio::time::sleep
    - Duration::from_millis
    - redis::AsyncConnectionConfig::new
    - unwrap
    - '&mut Cmd::clone'
    - enumerate
    - get_multiplexed_async_connection_with_config
    - init_logger
    linkageType: ''
    returnType: void
    signature: async fn test_multiple_connections_from_one_client_sharing_a_single_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:885,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:886,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:887,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:887,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:887,1
    - Dst: add_users_with_jwt_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:893,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:897,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:898,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:901,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:901,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_acl.rs:904,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_acl.rs:904,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:904,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:908,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:908,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:913,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:913,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:919,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:919,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:921,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:921,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:927,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:927,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:932,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:932,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:934,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:934,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 945
      start: 884
    functionDepth: 11
    functionLinenumber: 884
    functionLinenumberEnd: 945
    functionName: token_based_authentication_acl_tests::test_multiple_clients_sharing_a_single_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - connection_info
    - Self::query_async
    - redis::AsyncConnectionConfig::new
    - unwrap
    - RedisResult::unwrap
    - redis::cmd
    - tokio::time::sleep
    - enumerate
    - into_iter
    - MockStreamingCredentialsProvider::multiple_tokens
    - Self::set_credentials_provider
    - start
    - redis::Client::open
    - add_users_with_jwt_tokens
    - '&mut Cmd::clone'
    - init_logger
    - redis::Cmd::arg
    - Duration::from_millis
    - get_multiplexed_async_connection_with_config
    linkageType: ''
    returnType: void
    signature: async fn test_multiple_clients_sharing_a_single_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:956,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:957,1
    - Dst: add_users_with_jwt_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:961,1
    - Dst: MockStreamingCredentialsProvider::with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:965,1
    - Dst: MockProviderConfig::valid_then_invalid_credentials
      Src: /src/redis-rs/redis/tests/test_acl.rs:966,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:968,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:971,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:971,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:974,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:974,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:981,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:981,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:981,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:982,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:982,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:988,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:988,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:993,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_acl.rs:996,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 955
    functionDepth: 17
    functionLinenumber: 955
    functionLinenumberEnd: 1005
    functionName: token_based_authentication_acl_tests::test_connection_rendered_unusable_when_reauthentication_fails
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - MockStreamingCredentialsProvider::with_config
    - Self::set_credentials_provider
    - redis::cmd
    - start
    - redis::Cmd::arg
    - Self::query_async
    - add_users_with_jwt_tokens
    - tokio::time::sleep
    - Duration::from_millis
    - redis::AsyncConnectionConfig::new
    - unwrap_err
    - get_multiplexed_async_connection_with_config
    - unwrap
    - '&mut Cmd::clone'
    - MockProviderConfig::valid_then_invalid_credentials
    - init_logger
    linkageType: ''
    returnType: void
    signature: async fn test_connection_rendered_unusable_when_reauthentication_fails()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:27,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:28,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_module_json.rs:40,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_module_json.rs:43,1
    - Dst: json_set::<_, _, _, bool>
      Src: /src/redis-rs/redis/tests/test_module_json.rs:45,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_module_json.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 26
    functionDepth: 8
    functionLinenumber: 26
    functionLinenumberEnd: 54
    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
    - HashMap::new
    - json_set::<_, _, _, bool>
    - unwrap_err
    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:58,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:59,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:61,1
    - Dst: redis::Connection::json_arr_append
      Src: /src/redis-rs/redis/tests/test_module_json.rs:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 72
    functionName: test_module_json_arr_append
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_arr_append
    - redis::Connection::json_set
    - TestContext::connection
    - 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:76,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:77,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:79,1
    - Dst: redis::Connection::json_arr_index
      Src: /src/redis-rs/redis/tests/test_module_json.rs:87,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:91,1
    - Dst: redis::Connection::json_arr_index_ss
      Src: /src/redis-rs/redis/tests/test_module_json.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 103
    functionName: test_module_json_arr_index
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_set
    - redis::Connection::json_arr_index
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_arr_index_ss
    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:107,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:108,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:110,1
    - Dst: redis::Connection::json_arr_insert
      Src: /src/redis-rs/redis/tests/test_module_json.rs:118,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:122,1
    - Dst: redis::Connection::json_arr_insert
      Src: /src/redis-rs/redis/tests/test_module_json.rs:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 133
    functionName: test_module_json_arr_insert
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_arr_insert
    - redis::Connection::json_set
    - TestContext::connection
    - 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:137,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:138,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:140,1
    - Dst: redis::Connection::json_arr_len
      Src: /src/redis-rs/redis/tests/test_module_json.rs:148,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:152,1
    - Dst: redis::Connection::json_arr_len
      Src: /src/redis-rs/redis/tests/test_module_json.rs:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 163
    functionName: test_module_json_arr_len
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_set
    - redis::Connection::json_arr_len
    - TestContext::connection
    - 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:167,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:168,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:170,1
    - Dst: redis::Connection::json_arr_pop
      Src: /src/redis-rs/redis/tests/test_module_json.rs:178,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:189,1
    - Dst: redis::Connection::json_arr_pop
      Src: /src/redis-rs/redis/tests/test_module_json.rs:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 207
    functionName: test_module_json_arr_pop
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_set
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_arr_pop
    linkageType: ''
    returnType: void
    signature: fn test_module_json_arr_pop()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:211,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:212,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:214,1
    - Dst: redis::Connection::json_arr_trim
      Src: /src/redis-rs/redis/tests/test_module_json.rs:222,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:226,1
    - Dst: redis::Connection::json_arr_trim
      Src: /src/redis-rs/redis/tests/test_module_json.rs:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 237
    functionName: test_module_json_arr_trim
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_set
    - redis::Connection::json_arr_trim
    - TestContext::connection
    - 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:241,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:242,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:244,1
    - Dst: redis::Connection::json_clear
      Src: /src/redis-rs/redis/tests/test_module_json.rs:248,1
    - Dst: redis::Connection::json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 262
    functionName: test_module_json_clear
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_get
    - redis::Connection::json_set
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_clear
    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:266,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:267,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:269,1
    - Dst: redis::Connection::json_del
      Src: /src/redis-rs/redis/tests/test_module_json.rs:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 280
    functionName: test_module_json_del
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_del
    - redis::Connection::json_set
    - TestContext::connection
    - 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:284,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:285,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:287,1
    - Dst: redis::Connection::json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:295,1
    - Dst: redis::Connection::json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:299,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_module_json.rs:301,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_module_json.rs:301,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_module_json.rs:302,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_module_json.rs:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 306
    functionName: test_module_json_get
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_get
    - redis::Connection::json_set
    - '&str::into'
    - TestContext::connection
    - TestContext::with_modules
    - Ok
    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:310,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:311,1
    - Dst: redis::Connection::json_mset
      Src: /src/redis-rs/redis/tests/test_module_json.rs:313,1
    - Dst: redis::Connection::json_mget
      Src: /src/redis-rs/redis/tests/test_module_json.rs:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 340
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 340
    functionName: test_module_json_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_mset
    - redis::Connection::json_mget
    - TestContext::connection
    - 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:344,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:345,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:347,1
    - Dst: std::env::var
      Src: /src/redis-rs/redis/tests/test_module_json.rs:355,1
    - Dst: String::unwrap_or_default
      Src: /src/redis-rs/redis/tests/test_module_json.rs:355,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_module_json.rs:356,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/tests/test_module_json.rs:356,1
    - Dst: redis::Connection::json_num_incr_by
      Src: /src/redis-rs/redis/tests/test_module_json.rs:358,1
    - Dst: redis::Connection::json_num_incr_by
      Src: /src/redis-rs/redis/tests/test_module_json.rs:361,1
    - Dst: redis::Connection::json_num_incr_by
      Src: /src/redis-rs/redis/tests/test_module_json.rs:367,1
    - Dst: redis::Connection::json_num_incr_by
      Src: /src/redis-rs/redis/tests/test_module_json.rs:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 375
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 375
    functionName: test_module_json_num_incr_by
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - std::env::var
    - redis::Connection::json_num_incr_by
    - String::unwrap_or_default
    - redis::Connection::json_set
    - starts_with
    - supports_resp3
    - TestContext::connection
    - TestContext::with_modules
    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:379,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:380,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:382,1
    - Dst: redis::Connection::json_obj_keys
      Src: /src/redis-rs/redis/tests/test_module_json.rs:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 402
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 402
    functionName: test_module_json_obj_keys
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_obj_keys
    - redis::Connection::json_set
    - TestContext::connection
    - 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:406,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:407,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:409,1
    - Dst: redis::Connection::json_obj_len
      Src: /src/redis-rs/redis/tests/test_module_json.rs:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 420
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 420
    functionName: test_module_json_obj_len
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_obj_len
    - redis::Connection::json_set
    - TestContext::connection
    - 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:424,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:425,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 430
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 430
    functionName: test_module_json_set
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_set
    - TestContext::connection
    - 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:434,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:435,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:437,1
    - Dst: redis::Connection::json_str_append
      Src: /src/redis-rs/redis/tests/test_module_json.rs:445,1
    - Dst: redis::Connection::json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 455
    functionName: test_module_json_str_append
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_get
    - redis::Connection::json_set
    - redis::Connection::json_str_append
    - TestContext::connection
    - TestContext::with_modules
    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:459,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:460,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:462,1
    - Dst: redis::Connection::json_str_len
      Src: /src/redis-rs/redis/tests/test_module_json.rs:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 473
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 473
    functionName: test_module_json_str_len
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_set
    - redis::Connection::json_str_len
    - TestContext::connection
    - 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:477,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:478,1
    - Dst: redis::Connection::json_set
      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:484,1
    - Dst: redis::Connection::json_toggle
      Src: /src/redis-rs/redis/tests/test_module_json.rs:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 489
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 489
    functionName: test_module_json_toggle
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_toggle
    - redis::Connection::json_set
    - TestContext::connection
    - 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:493,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:494,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:496,1
    - Dst: redis::Connection::json_type
      Src: /src/redis-rs/redis/tests/test_module_json.rs:504,1
    - Dst: redis::Connection::json_type
      Src: /src/redis-rs/redis/tests/test_module_json.rs:505,1
    - Dst: redis::Connection::json_type
      Src: /src/redis-rs/redis/tests/test_module_json.rs:506,1
    - Dst: std::env::var
      Src: /src/redis-rs/redis/tests/test_module_json.rs:508,1
    - Dst: String::unwrap_or_default
      Src: /src/redis-rs/redis/tests/test_module_json.rs:508,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_module_json.rs:509,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/tests/test_module_json.rs:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 541
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 541
    functionName: test_module_json_type
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - std::env::var
    - redis::Connection::json_set
    - redis::Connection::json_type
    - String::unwrap_or_default
    - starts_with
    - supports_resp3
    - TestContext::connection
    - TestContext::with_modules
    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: 10
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: init_logger
    functionSourceFile: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs
    functionUses: 7
    functionsReached:
    - std::env::var
    - call_once
    - String::is_err
    - env_logger::builder
    - is_test
    - filter_level
    - init
    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
    - futures_util::stream::once
    - boxed
    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:
    - bool::boxed
    - futures_util::stream::empty
    linkageType: ''
    returnType: Pin
    signature: fn subscribe(&self) -> Pin<Box<dyn Stream<Item = RedisResult<BasicAuth>>
      + Send + 'static>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: futures_util::stream::once
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:74,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:75,1
    - Dst: BasicAuth::new
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:75,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:75,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:75,1
    - Dst: boxed
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: OneTimeCredentialsProvider::subscribe
    functionSourceFile: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs
    functionUses: 0
    functionsReached:
    - '&str::to_string'
    - futures_util::stream::once
    - BasicAuth::new
    - boxed
    - Ok
    linkageType: ''
    returnType: Pin
    signature: fn subscribe(&self) -> Pin<Box<dyn Stream<Item = RedisResult<BasicAuth>>
      + Send + 'static>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: futures_util::stream::iter
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:89,1
    - Dst: boxed
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: DelayedFailureCredentialsProvider::subscribe
    functionSourceFile: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs
    functionUses: 0
    functionsReached:
    - futures_util::stream::iter
    - 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:108,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:109,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:112,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:112,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:114,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 107
    functionDepth: 11
    functionLinenumber: 107
    functionLinenumberEnd: 126
    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:
    - TestContext::new
    - Self::set_credentials_provider
    - redis::AsyncConnectionConfig::new
    - unwrap_err
    - get_multiplexed_async_connection_with_config
    - init_logger
    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:130,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:131,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:134,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:134,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:136,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 129
    functionDepth: 11
    functionLinenumber: 129
    functionLinenumberEnd: 148
    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:
    - TestContext::new
    - Self::set_credentials_provider
    - redis::AsyncConnectionConfig::new
    - unwrap_err
    - get_multiplexed_async_connection_with_config
    - init_logger
    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:152,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:153,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:156,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:156,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:158,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:158,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:164,1
    - Dst: redis::Cmd::query_async
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:164,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:168,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:168,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:171,1
    - Dst: redis::Cmd::query_async
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:171,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 151
    functionDepth: 11
    functionLinenumber: 151
    functionLinenumberEnd: 183
    functionName: credentials_provider_failures_tests::test_connection_renders_unusable_when_the_subscription_stream_closes
    functionSourceFile: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - std::time::Duration::from_millis
    - redis::cmd
    - Self::set_credentials_provider
    - redis::Cmd::query_async
    - tokio::time::sleep
    - redis::AsyncConnectionConfig::new
    - unwrap_err
    - expect
    - get_multiplexed_async_connection_with_config
    - init_logger
    linkageType: ''
    returnType: void
    signature: async fn test_connection_renders_unusable_when_the_subscription_stream_closes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:187,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:188,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:191,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:191,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:193,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:193,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:199,1
    - Dst: redis::Cmd::query_async
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:199,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:203,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:203,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:206,1
    - Dst: redis::Cmd::query_async
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:206,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 186
    functionDepth: 11
    functionLinenumber: 186
    functionLinenumberEnd: 218
    functionName: credentials_provider_failures_tests::test_connection_renders_unusable_when_the_subscription_stream_closes_after_an_error
    functionSourceFile: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - std::time::Duration::from_millis
    - redis::cmd
    - Self::set_credentials_provider
    - redis::Cmd::query_async
    - tokio::time::sleep
    - redis::AsyncConnectionConfig::new
    - unwrap_err
    - expect
    - get_multiplexed_async_connection_with_config
    - init_logger
    linkageType: ''
    returnType: void
    signature: async fn test_connection_renders_unusable_when_the_subscription_stream_closes_after_an_error()
  - 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:
    - read
    - Box::pin
    - redis::ConnectionInfo::addr
    - unwrap_or_else
    - clone
    - unwrap
    - get
    - RedisResult::unwrap
    - future::ok
    - redis::ConnectionInfo::into_connection_info
    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:
    - read
    - redis::ConnectionInfo::addr
    - unwrap_or_else
    - clone
    - unwrap
    - get
    - RedisResult::unwrap
    - Ok
    - redis::ConnectionInfo::into_connection_info
    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: 12
    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: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:110,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:110,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:110,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:110,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:111,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:111,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:112,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:112,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:112,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:120,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:121,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:121,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:121,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:121,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - name
    - cmd
    argTypes:
    - '&str'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 125
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 125
    functionName: respond_startup
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 12
    functionsReached:
    - Err
    - contains_slice
    - Value::SimpleString
    - '&str::into'
    - Value::Array
    - Ok
    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:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name
    - cmd
    argTypes:
    - '&str'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 136
    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:139,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - cmd
    argTypes:
    - '&str'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 155
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 155
    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:162,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:174,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:175,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:175,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:175,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:175,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:176,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:176,1
    - Dst: Option<Vec<MockSlotRange>>::into_iter
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:177,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:177,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:180,1
    - Dst: flat_map
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:180,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:180,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:190,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:177,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:201,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:201,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:201,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:202,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:203,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:203,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:203,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:203,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 3
    argNames:
    - name
    - cmd
    - slots_config
    argTypes:
    - '&str'
    - '&[u8]'
    - Option<Vec<MockSlotRange>>
    constantsTouched: []
    func_position:
      end: 207
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 207
    functionName: respond_startup_with_replica_using_config
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 21
    functionsReached:
    - flat_map
    - Err
    - contains_slice
    - collect
    - Value::SimpleString
    - Option<Vec<MockSlotRange>>::unwrap_or
    - std::iter::Chain::map
    - '&str::into'
    - Option<Vec<MockSlotRange>>::into_iter
    - Value::Array
    - Ok
    - 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:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    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:251,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:253,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:256,1
    - Dst: std::iter::Chain::nth
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:256,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:257,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:258,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:259,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:259,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:263,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:264,1
    - Dst: String::from_redis_value
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:266,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:266,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 3
    argNames:
    - cmd
    - offset
    - _count
    argTypes:
    - '&[u8]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 272
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 272
    functionName: MockConnection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - Result::unwrap
    - expect_err
    - RedisResult::into_iter
    - std::iter::Chain::nth
    - String::from_redis_value
    - Ok
    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: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    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: 280
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 280
    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: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    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:303,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:303,1
    - Dst: remove
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: RemoveHandler::drop
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - remove
    - write
    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:313,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:314,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: 318
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 318
    functionName: MockEnv::new
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 12
    functionsReached:
    - ClusterClient::builder
    - Self::with_client_builder
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(id: &str,handler: impl Fn(&[u8], u16) -> Result<(), RedisResult<Value>>
      + Send + Sync + ''static,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::runtime::Builder::new_current_thread
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:326,1
    - Dst: enable_io
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:326,1
    - Dst: enable_time
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:326,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:326,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:326,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:332,1
    - Dst: write
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:333,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:333,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:333,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:336,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:336,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:338,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:338,1
    - Dst: get_generic_connection
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:339,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:339,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:341,1
    - Dst: get_async_generic_connection
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:342,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:341,1
    - Dst: RemoveHandler
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:351,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: 353
      start: 320
    functionDepth: 8
    functionLinenumber: 320
    functionLinenumberEnd: 353
    functionName: MockEnv::with_client_builder
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 36
    functionsReached:
    - insert
    - enable_io
    - get_async_generic_connection
    - build
    - tokio::runtime::Builder::new_current_thread
    - get_generic_connection
    - clone
    - enable_time
    - unwrap
    - tokio::runtime::Runtime::block_on
    - Arc::new
    - RedisResult::unwrap
    - write
    - to_string
    - RemoveHandler
    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
    - build
    - tokio::runtime::Builder::new_current_thread
    - enable_time
    - 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: 8
    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_smol
    - panic::take_hook
    - block_on_all_using_tokio
    - unwrap
    - Box::new
    - futures_util::FutureExt::fuse
    - futures_time::task::sleep
    - futures_time::time::Duration::from_millis
    - store
    - load
    - panic::set_hook
    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:
    - redis::aio::prefer_tokio
    - Result::unwrap
    - tokio::runtime::Runtime::block_on
    - current_thread_runtime
    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:
    - Result::unwrap
    - smol::block_on
    - redis::aio::prefer_smol
    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:
    - install_default
    - rustls::crypto::ring::default_provider
    - is_none
    - 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: 168
    functionsReached:
    - TestContext::with_modules
    linkageType: ''
    returnType: TestContext
    signature: pub fn new() -> TestContext
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_modules
      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: 7
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: TestContext::new_with_mtls
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 2
    functionsReached:
    - Self::with_modules
    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: 2
    argNames:
    - modules
    - mtls_enabled
    argTypes:
    - '&[Module]'
    - bool
    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], mtls_enabled: bool) -> 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: 3
    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: 11
    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
    - Self::with_modules_addr_and_tls
    - RedisServer::get_addr
    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: 12
    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
    - RedisServer::connection_info
    - Cmd::spawn
    - build_single_client
    - Duration::from_millis
    - unwrap_or_else
    - std::thread::sleep
    - is_connection_refusal
    - unwrap
    - redis_test::server::use_protocol
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - RedisResult::unwrap
    - flushdb::<()>
    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: 132
    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: 21
    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: 4
    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:
    - Self::set_cache_config
    - AsyncConnectionConfig::new
    - get_multiplexed_async_connection_with_config
    - clone
    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: 4
    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: 15
    functionLinenumber: 296
    functionLinenumberEnd: 305
    functionName: encode_iter
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - Self::iter
    - unwrap
    - encode_value
    - io::Result::unwrap
    - Ok
    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: 15
    functionLinenumber: 306
    functionLinenumberEnd: 316
    functionName: encode_map
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - Self::iter
    - unwrap
    - encode_value
    - io::Result::unwrap
    - Ok
    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: 16
    functionLinenumber: 317
    functionLinenumberEnd: 383
    functionName: encode_value
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 7
    functionsReached:
    - details
    - '&mut W::write_all'
    - iter
    - encode_map
    - unwrap
    - encode_value
    - encode_iter
    - io::Result::unwrap
    - Ok
    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: 15
    functionLinenumber: 387
    functionLinenumberEnd: 395
    functionName: parse_version
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 1
    functionsReached:
    - u8::split
    - parse::<u16>
    - collect
    - map
    - unwrap
    - redis::ConnectionInfo::get
    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: 10
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: get_version
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 5
    functionsReached:
    - query
    - Self::arg
    - parse_version
    - unwrap
    - redis::Cmd::new
    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: 432
      start: 419
    functionDepth: 12
    functionLinenumber: 419
    functionLinenumberEnd: 432
    functionName: run_test_if_version_supported
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 36
    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:436,1
    - Dst: bool::expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:436,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:437,1
    - Dst: BufReader::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:438,1
    - Dst: RedisServer::read_to_end
      Src: /src/redis-rs/redis/tests/support/mod.rs:438,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:438,1
    - Dst: File::open
      Src: /src/redis-rs/redis/tests/support/mod.rs:442,1
    - Dst: bool::expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:442,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:443,1
    - Dst: BufReader::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:444,1
    - Dst: RedisServer::read_to_end
      Src: /src/redis-rs/redis/tests/support/mod.rs:444,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:444,1
    - Dst: File::open
      Src: /src/redis-rs/redis/tests/support/mod.rs:448,1
    - Dst: bool::expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:448,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:449,1
    - Dst: BufReader::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:450,1
    - Dst: RedisServer::read_to_end
      Src: /src/redis-rs/redis/tests/support/mod.rs:450,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:450,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/mod.rs:455,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/mod.rs:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - tls_file_paths
    argTypes:
    - '&TlsFilePaths'
    constantsTouched: []
    func_position:
      end: 461
      start: 435
    functionDepth: 15
    functionLinenumber: 435
    functionLinenumberEnd: 461
    functionName: load_certs_from_file
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - File::open
    - bool::expect
    - Some
    - RedisServer::read_to_end
    - Vec::new
    - BufReader::new
    - 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:489,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: 490
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 490
    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:498,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/support/mod.rs:498,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/support/mod.rs:500,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/tests/support/mod.rs:502,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/tests/support/mod.rs:501,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:501,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/mod.rs:509,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/mod.rs:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - '&[ConnectionInfo]'
    constantsTouched: []
    func_position:
      end: 512
      start: 497
    functionDepth: 15
    functionLinenumber: 497
    functionLinenumberEnd: 512
    functionName: mtls_test::clean_node_info
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - to_owned
    - collect
    - iter
    - map
    - clone
    - addr
    - unwrap
    - into_connection_info
    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:518,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:518,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/tests/support/mod.rs:523,1
    - Dst: clean_node_info
      Src: /src/redis-rs/redis/tests/support/mod.rs:524,1
    - Dst: redis::cluster::ClusterClientBuilder::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:525,1
    - Dst: certs
      Src: /src/redis-rs/redis/tests/support/mod.rs:529,1
    - Dst: load_certs_from_file
      Src: /src/redis-rs/redis/tests/support/mod.rs:529,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/support/mod.rs:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - cluster
    - mtls_enabled
    argTypes:
    - '&TestClusterContext'
    - bool
    constantsTouched: []
    func_position:
      end: 538
      start: 514
    functionDepth: 16
    functionLinenumber: 514
    functionLinenumberEnd: 538
    functionName: mtls_test::create_cluster_client_from_cluster
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 4
    functionsReached:
    - load_certs_from_file
    - first
    - redis::cluster::ClusterClientBuilder::new
    - clean_node_info
    - build
    - as_ref
    - expect
    - certs
    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:542,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/support/mod.rs:543,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:543,1
    - Dst: '&mut Cmd::ignore'
      Src: /src/redis-rs/redis/tests/support/mod.rs:543,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/support/mod.rs:543,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:543,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:543,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/support/mod.rs:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 551
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 551
    functionName: build_simple_pipeline_for_invalidation
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 2
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - Pipeline::cmd
    - arg
    - '&mut Cmd::ignore'
    - 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:558,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:558,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/support/mod.rs:558,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:558,1
    - Dst: redis::ConnectionInfo::split_once
      Src: /src/redis-rs/redis/tests/support/mod.rs:563,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:563,1
    - Dst: split_once
      Src: /src/redis-rs/redis/tests/support/mod.rs:565,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:565,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/support/mod.rs:567,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:567,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/support/mod.rs:568,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:568,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/support/mod.rs:568,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:568,1
    - Dst: query_async
      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: Ok
      Src: /src/redis-rs/redis/tests/support/mod.rs:576,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: 577
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 577
    functionName: kill_client_async
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 2
    functionsReached:
    - '&mut Cmd::arg'
    - redis::ConnectionInfo::split_once
    - redis::cmd
    - arg
    - unwrap
    - split_once
    - get_multiplexed_async_connection
    - query_async
    - Cmd::arg
    - '&mut Cmd::query_async'
    - Ok
    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: 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: 15
    functionLinenumber: 2
    functionLinenumberEnd: 10
    functionName: assert_args
    functionSourceFile: /src/redis-rs/redis/tests/support/util.rs
    functionUses: 5
    functionsReached:
    - collect
    - Result::as_ref
    - to_redis_args
    - iter
    - map
    - unwrap
    - std::str::from_utf8
    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: 16
    functionLinenumber: 24
    functionLinenumberEnd: 46
    functionName: TestSentinelContext::new_with_cluster_client_builder
    functionSourceFile: /src/redis-rs/redis/tests/support/sentinel.rs
    functionUses: 0
    functionsReached:
    - collect
    - support::start_tls_crypto_provider
    - wait_for_cluster_up
    - RedisSentinelCluster::new
    - clone
    - Result::iter_sentinel_servers
    - redis::sentinel::Sentinel::build
    - impl Iterator::map
    - '&redis::sentinel::Sentinel::unwrap'
    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:
    - Some
    - client_addr
    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:
    - '&mut redis::sentinel::Sentinel::replica_for'
    - redis_test::sentinel::wait_for_replica
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - redis_test::sentinel::wait_for_master_server
    - ConnectionAddr::is_err
    - TestSentinelContext::sentinel_mut
    - '&mut redis::sentinel::Sentinel::master_for'
    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: 16
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: TestClusterContext::new
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 24
    functionsReached:
    - Self::new_with_config
    - Default::default
    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: 16
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: TestClusterContext::new_with_mtls
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 4
    functionsReached:
    - Self::new_with_config_and_builder
    - Default::default
    linkageType: ''
    returnType: 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: 16
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: TestClusterContext::new_without_ip_alts
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - Self::new_with_config_and_builder
    - Default::default
    linkageType: ''
    returnType: 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: 16
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: TestClusterContext::new_with_cluster_client_builder
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 15
    functionsReached:
    - Self::new_with_config_and_builder
    - Default::default
    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: 13
    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
    - super::load_certs_from_file
    - collect
    - Result::iter_servers
    - support::start_tls_crypto_provider
    - RedisCluster::new
    - build
    - ClusterClientBuilder::use_protocol
    - clone
    - redis_test::server::use_protocol
    - RedisResult::unwrap
    - certs
    - impl Iterator::map
    - initializer
    - ClusterType::get_intended
    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:
    - unwrap
    - get_async_connection
    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:
    - unwrap
    - get_async_connection_with_config
    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:
    - "client\n            .get_async_generic_connection::<C>"
    - unwrap
    linkageType: ''
    returnType: redis::cluster_async::ClusterConnection
    signature: 'pub async fn async_generic_connection<C: ConnectionLike + Connect
      + Clone + Send + Sync + Unpin + ''static,>(&self,) -> redis::cluster_async::ClusterConnection<C>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::connection
      Src: /src/redis-rs/redis/tests/support/cluster.rs: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:
    - ConnectionAddr::starts_with
    - query::<String>
    - redis::cmd
    - Duration::from_millis
    - std::thread::sleep
    - arg
    - unwrap
    - TestClusterContext::connection
    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: 18
    functionLinenumber: 172
    functionLinenumberEnd: 194
    functionName: TestClusterContext::disable_default_user
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - support::build_single_client
    - get_connection
    - redis::cmd
    - RedisServer::connection_info
    - redis::Cmd::arg
    - arg
    - exec
    - RedisResult::unwrap
    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: 17
    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: 15
    functionLinenumber: 201
    functionLinenumberEnd: 212
    functionName: TestClusterContext::get_ports
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 2
    functionsReached:
    - iter
    - map
    - collect
    - 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:
    - Err
    - retrieve_tls_certificates
    - RedisError::from
    - Some
    - Ok
    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:
    - Err
    - into
    - RootCertStore::empty
    - is_err
    - Error::other
    - Some
    - bool::add
    - CertificateDer::pem_slice_iter
    - Ok
    - PrivateKeyDer::from_pem_slice
    - map_err
    - collect::<Result<Vec<_>, _>>
    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:
    - secret_pkcs8_der
    - into
    - to_vec
    - Sec1
    - clone
    - Pkcs1
    - secret_pkcs1_der
    - secret_sec1_der
    - Pkcs8
    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:
    - impl combine::Parser::to_redis_args
    - into_owned
    - 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
    - write_arg
    - impl combine::Parser::as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 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: 9
    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: 0
    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: 15
    functionLinenumber: 488
    functionLinenumberEnd: 500
    functionName: Value::as_map_iter
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - iter
    - Some
    - MapIter::Array
    - len
    - 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: 0
    functionsReached:
    - Err
    - len
    - OwnedMapIter::Array
    - OwnedMapIter::Map
    - Value::Array
    - Ok
    - into_iter
    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: 15
    functionLinenumber: 519
    functionLinenumberEnd: 536
    functionName: Value::extract_error
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - Self::extract_error_vec
    - Self::Map
    - Self::Set
    - Box::new
    - Self::extract_error_map
    - Self::Array
    - extract_error
    - Ok
    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:
    - std::iter::Chain::map
    - "into_iter()\n            .map(Self::extract_error)\n            .collect::<RedisResult<Vec<_>>>"
    - into_iter
    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: 17
    functionLinenumber: 544
    functionLinenumberEnd: 550
    functionName: Value::extract_error_map
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - impl combine::Parser::extract_error
    - Ok
    - extract_error
    - push
    - Vec::with_capacity
    - len
    - into_iter
    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:
    - details
    - std::str::from_utf8
    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: 9
    functionLinenumber: 607
    functionLinenumberEnd: 612
    functionName: RedisResult::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - from_redis_value_ref
    - Err
    - Result::map
    - clone
    - Self::into
    - Ok
    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: 9
    functionLinenumber: 614
    functionLinenumberEnd: 619
    functionName: RedisResult::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - Result::map
    - from_redis_value
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(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: 15
    functionLinenumber: 653
    functionLinenumberEnd: 667
    functionName: InfoDict::new
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - insert
    - '&str::lines'
    - Value::SimpleString
    - to_string
    - starts_with
    - next
    - Result::to_string
    - is_empty
    - splitn
    - HashMap::new
    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: 3
    functionLinenumber: 671
    functionLinenumberEnd: 676
    functionName: InfoDict::get
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - from_redis_value_ref
    - InfoDict::find
    - 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: 15
    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: 16
    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: 10
    functionLinenumber: 752
    functionLinenumberEnd: 754
    functionName: ReplicaInfo::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::from_redis_value
    - Result::clone
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs: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
    - Result::len
    - Result::into_iter
    - from_redis_value
    - Option::expect
    - Result::next
    - Value::into_sequence
    - Ok
    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: 10
    functionLinenumber: 777
    functionLinenumberEnd: 779
    functionName: Role::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::from_redis_value
    - Result::clone
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs: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
    - Result::len
    - Role::new_replica
    - Role::new_primary
    - as_slice
    - Value::into_sequence
    - Role::new_sentinel
    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:
    - Self::next
    - Self::into_iter
    - from_redis_value
    - Self::len
    - Option::expect
    - Ok
    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:
    - Self::next
    - Self::into_iter
    - from_redis_value
    - Self::len
    - Option::expect
    - Ok
    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:
    - Self::into_iter
    - from_redis_value
    - Self::len
    - expect
    - std::iter::Chain::nth
    - Ok
    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:
    - to_string
    - RedisWrite::write_arg
    - String::as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_arg_fmt(&mut self, arg: impl fmt::Display)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - additional
    argTypes:
    - impl IntoIterator<Item = usize>
    constantsTouched: []
    func_position:
      end: 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: 15
    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: 17
    functionLinenumber: 994
    functionLinenumberEnd: 996
    functionName: Vec::write_arg
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Vec::push
    - to_owned
    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: 17
    functionLinenumber: 998
    functionLinenumberEnd: 1000
    functionName: Vec::write_arg_fmt
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - to_string
    - Vec::push
    - String::into_bytes
    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: 17
    functionLinenumber: 1002
    functionLinenumberEnd: 1005
    functionName: Vec::writer_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - Vec::push
    - Vec::last_mut
    - 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
    - std::iter::Chain::count
    - Vec::reserve
    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: 17
    functionLinenumber: 1016
    functionLinenumberEnd: 1019
    functionName: Vec::bufmut_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Vec::with_capacity
    - Vec::push
    - Vec::last_mut
    - 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: 15
    functionLinenumber: 1037
    functionLinenumberEnd: 1041
    functionName: ToRedisArgs::to_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - Vec::new
    - ToRedisArgs::write_redis_args
    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: 15
    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: 18
    functionLinenumber: 1099
    functionLinenumberEnd: 1118
    functionName: itoa_based_to_redis_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::as_bytes
    - write_arg
    - RedisServer::format
    - ::itoa::Buffer::new
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::itoa::Buffer::new
      Src: /src/redis-rs/redis/src/types.rs:7,1
    - Dst: 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: 15
    functionLinenumber: 1120
    functionLinenumberEnd: 1139
    functionName: non_zero_itoa_based_to_redis_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - RedisServer::format
    - non_zero_itoa_based_to_redis_impl::get
    - TlsFilePaths::as_bytes
    - write_arg
    - ::itoa::Buffer::new
    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: 18
    functionLinenumber: 1141
    functionLinenumberEnd: 1160
    functionName: ryu_based_to_redis_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::as_bytes
    - ::ryu::Buffer::new
    - write_arg
    - RedisServer::format
    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: 18
    functionLinenumber: 1163
    functionLinenumberEnd: 1170
    functionName: u8::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::as_bytes
    - write_arg
    - RedisServer::format
    - ::itoa::Buffer::new
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs: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: 18
    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: 18
    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
    - write_arg
    - String::into_bytes
    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: 18
    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: 18
    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: 18
    functionLinenumber: 1265
    functionLinenumberEnd: 1270
    functionName: '&str::write_redis_args'
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - '&str::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: 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: 19
    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: 19
    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: 22
    functionLinenumber: 1325
    functionLinenumberEnd: 1355
    functionName: impl_write_redis_args_for_collection
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - ToRedisArgs::is_single_vec_arg
    - num_of_args
    - impl_write_redis_args_for_collection::len
    - ToRedisArgs::write_args_from_slice
    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: 19
    functionLinenumber: 1357
    functionLinenumberEnd: 1382
    functionName: deref_to_write_redis_args_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_redis_args
    - describe_numeric_behavior
    - num_of_args
    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: 19
    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: 22
    functionLinenumber: 1540
    functionLinenumberEnd: 1545
    functionName: '&[T; N]::write_redis_args'
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - '&[T; N]::as_slice'
    - ToRedisArgs::write_args_from_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:
    - ToRedisArgs::is_single_vec_arg
    - num_of_args
    - '&[T; N]::len'
    linkageType: ''
    returnType: usize
    signature: fn num_of_args(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<T>::try_into
      Src: /src/redis-rs/redis/src/types.rs: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:
    - FromRedisValue::from_byte_slice
    - vec_to_array
    - 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: 10
    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: 10
    functionLinenumber: 1620
    functionLinenumberEnd: 1625
    functionName: FromRedisValue::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 7
    functionsReached:
    - Self::from_redis_value
    - Result::clone
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[Value]::iter'
      Src: /src/redis-rs/redis/src/types.rs: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: 15
    functionLinenumber: 1635
    functionLinenumberEnd: 1640
    functionName: FromRedisValue::from_redis_value_refs
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - '&[Value]::iter'
    - map
    - collect
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_refs(items: &[Value]) -> Result<Vec<Self>, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<Value>::into_iter
      Src: /src/redis-rs/redis/src/types.rs: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:
    - std::iter::Chain::map
    - Vec<Value>::into_iter
    - collect
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_values(items: Vec<Value>) -> Result<Vec<Self>, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<Value>::into_iter
      Src: /src/redis-rs/redis/src/types.rs: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:
    - std::iter::Chain::map
    - Vec<Value>::into_iter
    - collect
    linkageType: ''
    returnType: Vec
    signature: 'fn from_each_redis_values(items: Vec<Value>) -> Vec<Result<Self, ParsingError>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value
      Src: /src/redis-rs/redis/src/types.rs: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: 10
    functionLinenumber: 1661
    functionLinenumberEnd: 1665
    functionName: FromRedisValue::from_byte_slice
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - Self::from_redis_value
    - into
    - Value::BulkString
    - Result::map
    - ok
    linkageType: ''
    returnType: Option
    signature: 'fn from_byte_slice(_vec: &[u8]) -> Option<Vec<Self>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value
      Src: /src/redis-rs/redis/src/types.rs: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: 10
    functionLinenumber: 1668
    functionLinenumberEnd: 1670
    functionName: FromRedisValue::from_byte_vec
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::from_redis_value
    - Result::map
    - Value::BulkString
    linkageType: ''
    returnType: Result
    signature: 'fn from_byte_vec(_vec: Vec<u8>) -> Result<Vec<Self>, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/types.rs: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:
    - parse::<$t>
    - std::str::from_utf8
    - Ok
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value_for_num_internal
      Src: /src/redis-rs/redis/src/types.rs:4,1
    - Dst: Self::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1724
    functionDepth: 10
    functionLinenumber: 1724
    functionLinenumberEnd: 1736
    functionName: from_redis_value_for_num
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::from_redis_value_ref
    - from_redis_value_for_num_internal
    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: 10
    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:
    - to_vec
    - Some
    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:
    - Result::map_err
    - parse::<$t>
    - std::str::from_utf8
    - <$t>::try_from
    - Ok
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value_for_bignum_internal
      Src: /src/redis-rs/redis/src/types.rs:4,1
    - Dst: Self::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1800
    functionDepth: 10
    functionLinenumber: 1800
    functionLinenumberEnd: 1812
    functionName: from_redis_value_for_bignum
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::from_redis_value_ref
    - from_redis_value_for_bignum_internal
    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:
    - Ok
    - get_inner_value
    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: 10
    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: 15
    functionLinenumber: 1859
    functionLinenumberEnd: 1867
    functionName: CString::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - as_bytes
    - Vec::as_slice
    - CString::new
    - get_inner_value
    - Ok
    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: 15
    functionLinenumber: 1868
    functionLinenumberEnd: 1876
    functionName: CString::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - get_owned_inner_value
    - CString::new
    - Ok
    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:
    - '&str::to_string'
    - std::str::from_utf8
    - get_inner_value
    - to_string
    - 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: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
    - Self::from_utf8
    - '&str::to_string'
    - to_string
    - Ok
    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: 11
    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: 12
    functionLinenumber: 1937
    functionLinenumberEnd: 2003
    functionName: from_vec_from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_byte_vec
    - Err
    - FromRedisValue::from_byte_slice
    - Result::map
    - FromRedisValue::from_redis_value
    - FromRedisValue::from_redis_value_ref
    - Value::Map
    - Vec::new
    - u8::push
    - FromRedisValue::from_redis_values
    - FromRedisValue::from_redis_value_refs
    - Ok
    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: 16
    functionLinenumber: 2009
    functionLinenumberEnd: 2044
    functionName: impl_from_redis_value_for_map
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - from_redis_value_ref
    - Option::ok_or_else
    - Default::default
    - get_owned_inner_value
    - Result::map_err
    - collect
    - Result::into_map_iter
    - map
    - from_redis_value
    - Ok
    - Result::as_map_iter
    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: 15
    functionLinenumber: 2069
    functionLinenumberEnd: 2095
    functionName: impl_from_redis_value_for_set
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - from_redis_value_ref
    - Option::ok_or_else
    - get_owned_inner_value
    - Result::map_err
    - collect
    - iter
    - Result::into_sequence
    - map
    - Result::as_sequence
    - from_redis_value
    - into_iter
    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:
    - to_string
    - Err
    - ParsingError::from
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<(), ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:2139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2140
      start: 2138
    functionDepth: 10
    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: 16
    functionLinenumber: 2351
    functionLinenumberEnd: 2355
    functionName: InfoDict::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - from_redis_value_ref
    - InfoDict::new
    - Ok
    - get_inner_value
    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: 16
    functionLinenumber: 2356
    functionLinenumberEnd: 2360
    functionName: InfoDict::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - from_redis_value
    - get_owned_inner_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:
    - from_redis_value_ref
    - Some
    - Ok
    - get_inner_value
    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:
    - from_redis_value
    - get_owned_inner_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
    - Ok
    - get_inner_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: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: 10
    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: 18
    functionLinenumber: 2414
    functionLinenumberEnd: 2419
    functionName: uuid::Uuid::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - uuid::Uuid::as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:2428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2429
      start: 2427
    functionDepth: 11
    functionLinenumber: 2427
    functionLinenumberEnd: 2429
    functionName: from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 27
    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: 10
    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: 15
    functionLinenumber: 2452
    functionLinenumberEnd: 2468
    functionName: calculate_value_digest
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 5
    functionsReached:
    - Vec::new
    - impl combine::Parser::to_redis_args
    - RedisServer::extend_from_slice
    - xxh3_64
    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: 16
    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: 18
    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:2569,1
    - Dst: ValueType::Unknown
      Src: /src/redis-rs/redis/src/types.rs:2576,1
    - Dst: TlsFilePaths::to_string
      Src: /src/redis-rs/redis/src/types.rs:2576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 2578
      start: 2568
    functionDepth: 1
    functionLinenumber: 2568
    functionLinenumberEnd: 2578
    functionName: ValueType::from
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - ValueType::Unknown
    - TlsFilePaths::as_ref
    - TlsFilePaths::to_string
    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:2584,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2585,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2586,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2587,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2588,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - ValueType
    constantsTouched: []
    func_position:
      end: 2592
      start: 2582
    functionDepth: 1
    functionLinenumber: 2582
    functionLinenumberEnd: 2592
    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:2598,1
    - Dst: TlsFilePaths::into
      Src: /src/redis-rs/redis/src/types.rs:2598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2601
      start: 2596
    functionDepth: 0
    functionLinenumber: 2596
    functionLinenumberEnd: 2601
    functionName: ValueType::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::into
    - 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:2605,1
    - Dst: TlsFilePaths::into
      Src: /src/redis-rs/redis/src/types.rs:2605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2608
      start: 2603
    functionDepth: 0
    functionLinenumber: 2603
    functionLinenumberEnd: 2608
    functionName: ValueType::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::into
    - 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: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2631
      start: 2625
    functionDepth: 0
    functionLinenumber: 2625
    functionLinenumberEnd: 2631
    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:2638,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2639,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2640,1
    - Dst: IntegerReplyOrNoOp::IntegerReply
      Src: /src/redis-rs/redis/src/types.rs:2640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2644
      start: 2635
    functionDepth: 0
    functionLinenumber: 2635
    functionLinenumberEnd: 2644
    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:2649,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2650,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2651,1
    - Dst: IntegerReplyOrNoOp::IntegerReply
      Src: /src/redis-rs/redis/src/types.rs:2651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2655
      start: 2646
    functionDepth: 0
    functionLinenumber: 2646
    functionLinenumberEnd: 2655
    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: 2693
      start: 2688
    functionDepth: 0
    functionLinenumber: 2688
    functionLinenumberEnd: 2693
    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: additive
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:56,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:58,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - action
    - args
    argTypes:
    - SubscriptionAction
    - impl Iterator<Item = Vec<u8>>
    constantsTouched: []
    func_position:
      end: 65
      start: 39
    functionDepth: 14
    functionLinenumber: 39
    functionLinenumberEnd: 65
    functionName: SubscriptionTracker::update_with_request
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - insert
    - additive
    - remove
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn update_with_request(&mut self,action: SubscriptionAction,args:
      impl Iterator<Item = Vec<u8>>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::args_iter
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:68,1
    - Dst: impl Clone + ExactSizeIterator::next
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:69,1
    - Dst: str::from_utf8
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:74,1
    - Dst: impl Clone + ExactSizeIterator::filter_map
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:78,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:79,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:79,1
    - Dst: Option::eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:83,1
    - Dst: Option::eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:85,1
    - Dst: Option::eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:87,1
    - Dst: Option::eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:89,1
    - Dst: Option::eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:91,1
    - Dst: Option::eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:93,1
    - Dst: SubscriptionTracker::update_with_request
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:98,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 99
      start: 67
    functionDepth: 15
    functionLinenumber: 67
    functionLinenumberEnd: 99
    functionName: SubscriptionTracker::update_with_cmd
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - SubscriptionTracker::update_with_request
    - to_vec
    - Cmd::args_iter
    - Some
    - str::from_utf8
    - Option::eq_ignore_ascii_case
    - impl Clone + ExactSizeIterator::next
    - impl Clone + ExactSizeIterator::filter_map
    linkageType: ''
    returnType: void
    signature: 'pub(crate) 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:102,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:103,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:104,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:105,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:106,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:109,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:110,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:111,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:112,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:115,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:116,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:117,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 101
    functionDepth: 15
    functionLinenumber: 101
    functionLinenumberEnd: 123
    functionName: SubscriptionTracker::get_subscription_pipeline
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - iter
    - crate::pipe
    - Cmd::arg
    - cmd
    - is_empty
    linkageType: ''
    returnType: Pipeline
    signature: pub(crate) fn get_subscription_pipeline(&self) -> Pipeline
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionTracker::default
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:134,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:136,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:136,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:136,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:136,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:137,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:137,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:137,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:137,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:138,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:138,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:138,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:138,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:139,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:139,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:139,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:140,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:140,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:140,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:141,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:141,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:141,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:141,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:143,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:143,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:143,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:145,1
    - Dst: pipe
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:146,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:147,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:147,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:147,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:147,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:147,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 133
    functionDepth: 16
    functionLinenumber: 133
    functionLinenumberEnd: 160
    functionName: tests::test_add_and_remove_subscriptions
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - SubscriptionTracker::default
    - '&mut Cmd::arg'
    - '&mut Cmd::cmd'
    - redis::Cmd::arg
    - pipe
    - Pipeline::cmd
    - update_with_cmd
    - Cmd::arg
    - cmd
    - get_subscription_pipeline
    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:164,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:166,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:166,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:166,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:166,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:167,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:167,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:167,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:167,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:168,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:168,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:168,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:168,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:169,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:169,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:169,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:171,1
    - Dst: pipe
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:172,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:173,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 163
    functionDepth: 16
    functionLinenumber: 163
    functionLinenumberEnd: 180
    functionName: tests::test_skip_empty_subscriptions
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - SubscriptionTracker::default
    - '&mut Cmd::arg'
    - redis::Cmd::arg
    - pipe
    - Pipeline::cmd
    - update_with_cmd
    - Cmd::arg
    - cmd
    - get_subscription_pipeline
    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:184,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:186,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:186,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:186,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:187,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:187,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:187,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:189,1
    - Dst: pipe
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:190,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:191,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 183
    functionDepth: 16
    functionLinenumber: 183
    functionLinenumberEnd: 198
    functionName: tests::test_only_unsubscribe_from_existing_subscriptions
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - SubscriptionTracker::default
    - redis::Cmd::arg
    - pipe
    - Pipeline::cmd
    - update_with_cmd
    - Cmd::arg
    - cmd
    - get_subscription_pipeline
    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:
    - Err
    - RedisResult::is_open
    - errors::closed_connection_error
    - impl_manage_connection::get_connection
    - RedisResult::check_connection
    - Ok
    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: 15
    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:92,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cmd.rs:93,1
    - Dst: String::from_utf8_lossy
      Src: /src/redis-rs/redis/src/cmd.rs:94,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cmd.rs:94,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cmd.rs:93,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cmd.rs:93,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cmd.rs:93,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cmd.rs:100,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/cmd.rs:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: Cmd::fmt
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - String::from_utf8_lossy
    - as_ref
    - field
    - debug_struct
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/redis-rs/redis/src/cmd.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 116
    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:136,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:137,1
    - Dst: impl combine::Parser::map_err
      Src: /src/redis-rs/redis/src/cmd.rs:137,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cmd.rs:137,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:144,1
    - Dst: get_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:146,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cmd.rs:144,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:147,1
    - Dst: from_redis_value::<(u64, _)>
      Src: /src/redis-rs/redis/src/cmd.rs:147,1
    - Dst: T::from_each_redis_values
      Src: /src/redis-rs/redis/src/cmd.rs:149,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:150,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cmd.rs:150,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:153,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:154,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 156
    functionName: CheckedIter::next
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - impl combine::Parser::map_err
    - into
    - Err
    - get_packed_command
    - and_then
    - Some
    - from_redis_value::<(u64, _)>
    - next
    - RedisResult::into_iter
    - req_packed_command
    - Ok
    - T::from_each_redis_values
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<RedisResult<T>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/redis-rs/redis/src/cmd.rs:192,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:193,1
    - Dst: Result::map_err
      Src: /src/redis-rs/redis/src/cmd.rs:193,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cmd.rs:193,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:200,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cmd.rs:200,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:204,1
    - Dst: from_redis_value::<(u64, _)>
      Src: /src/redis-rs/redis/src/cmd.rs:204,1
    - Dst: T::from_each_redis_values
      Src: /src/redis-rs/redis/src/cmd.rs:206,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:207,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cmd.rs:207,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:210,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:211,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 213
    functionName: AsyncIterInner::next_item
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Result::map_err
    - into
    - Err
    - and_then
    - Some
    - from_redis_value::<(u64, _)>
    - next
    - RedisResult::into_iter
    - req_packed_command
    - Ok
    - T::from_each_redis_values
    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:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 236
    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:244,1
    - Dst: std::mem::replace
      Src: /src/redis-rs/redis/src/cmd.rs:245,1
    - Dst: next_item
      Src: /src/redis-rs/redis/src/cmd.rs:249,1
    - Dst: IterOrFuture::Future
      Src: /src/redis-rs/redis/src/cmd.rs:252,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cmd.rs:252,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/cmd.rs:253,1
    - Dst: RedisServer::poll_next
      Src: /src/redis-rs/redis/src/cmd.rs:253,1
    - Dst: as_mut
      Src: /src/redis-rs/redis/src/cmd.rs:255,1
    - Dst: poll
      Src: /src/redis-rs/redis/src/cmd.rs:255,1
    - Dst: IterOrFuture::Future
      Src: /src/redis-rs/redis/src/cmd.rs:257,1
    - Dst: IterOrFuture::Iter
      Src: /src/redis-rs/redis/src/cmd.rs:261,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cmd.rs:263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 268
      start: 243
    functionDepth: 15
    functionLinenumber: 243
    functionLinenumberEnd: 268
    functionName: AsyncIter::poll_next
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - IterOrFuture::Iter
    - IterOrFuture::Future
    - RedisServer::poll_next
    - as_mut
    - poll
    - AsyncIter::get_mut
    - Box::pin
    - Pin::new
    - std::mem::replace
    - Poll::Ready
    - next_item
    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: 290
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 290
    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:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 295
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 295
    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:301,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:301,1
    - Dst: bulklen
      Src: /src/redis-rs/redis/src/cmd.rs:303,1
    - Dst: countdigits
      Src: /src/redis-rs/redis/src/cmd.rs:304,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - args
    - cursor
    argTypes:
    - I
    - u64
    constantsTouched: []
    func_position:
      end: 309
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 309
    functionName: args_len
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - bulklen
    - countdigits
    - len
    linkageType: ''
    returnType: usize
    signature: 'fn args_len<''a, I>(args: I, cursor: u64) -> usizewhereI: IntoIterator<Item
      = Arg<&''a [u8]>> + ExactSizeIterator,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: args_len
      Src: /src/redis-rs/redis/src/cmd.rs:312,1
    - Dst: Cmd::args_iter
      Src: /src/redis-rs/redis/src/cmd.rs:312,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cmd.rs:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 4
    functionLinenumber: 311
    functionLinenumberEnd: 313
    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:319,1
    - Dst: write_command_to_vec
      Src: /src/redis-rs/redis/src/cmd.rs:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - args
    - cursor
    argTypes:
    - I
    - u64
    constantsTouched: []
    func_position:
      end: 322
      start: 315
    functionDepth: 15
    functionLinenumber: 315
    functionLinenumberEnd: 322
    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:328,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cmd.rs:328,1
    - Dst: Cmd::reserve
      Src: /src/redis-rs/redis/src/cmd.rs:330,1
    - Dst: write_command
      Src: /src/redis-rs/redis/src/cmd.rs:332,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - cmd
    - args
    - cursor
    argTypes:
    - '&mut Vec<u8>'
    - I
    - u64
    constantsTouched: []
    func_position:
      end: 333
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 333
    functionName: write_command_to_vec
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 1
    functionsReached:
    - Cmd::reserve
    - write_command
    - clone
    - args_len
    - io::Result::unwrap
    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:339,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:341,1
    - Dst: RedisServer::format
      Src: /src/redis-rs/redis/src/cmd.rs:342,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:342,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:343,1
    - Dst: TlsFilePaths::as_bytes
      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: itoa::Buffer::new
      Src: /src/redis-rs/redis/src/cmd.rs:346,1
    - Dst: RedisServer::format
      Src: /src/redis-rs/redis/src/cmd.rs:349,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/cmd.rs:349,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:353,1
    - Dst: RedisServer::format
      Src: /src/redis-rs/redis/src/cmd.rs:354,1
    - Dst: Vec::len
      Src: /src/redis-rs/redis/src/cmd.rs:354,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:355,1
    - Dst: TlsFilePaths::as_bytes
      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: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:358,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:359,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:361,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 3
    argNames:
    - cmd
    - args
    - cursor
    argTypes:
    - '&mut (impl ?Sized + Write)'
    - I
    - u64
    constantsTouched: []
    func_position:
      end: 362
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 362
    functionName: write_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 1
    functionsReached:
    - Vec::len
    - as_bytes
    - Cmd::write_all
    - itoa::Buffer::new
    - Ok
    - TlsFilePaths::as_bytes
    - RedisServer::format
    - len
    - ::itoa::Buffer::new
    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:366,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cmd.rs:367,1
    - Dst: Arg::Simple
      Src: /src/redis-rs/redis/src/cmd.rs:367,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 20
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: Cmd::write_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Arg::Simple
    - push
    - len
    - extend_from_slice
    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:371,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cmd.rs:372,1
    - Dst: Arg::Simple
      Src: /src/redis-rs/redis/src/cmd.rs:372,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - impl fmt::Display
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 20
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: Cmd::write_arg_fmt
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Arg::Simple
    - unwrap
    - push
    - len
    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:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 394
    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:403,1
    - Dst: reserve
      Src: /src/redis-rs/redis/src/cmd.rs:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - additional
    argTypes:
    - impl IntoIterator<Item = usize>
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 405
    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:409,1
    - Dst: CmdBufferedArgGuard
      Src: /src/redis-rs/redis/src/cmd.rs:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 449
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 449
    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:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 455
    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: 496
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 496
    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:501,1
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/cmd.rs:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arg_count
    - size_of_data
    argTypes:
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 508
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 508
    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:514,1
    - Dst: capacity
      Src: /src/redis-rs/redis/src/cmd.rs:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 515
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 515
    functionName: Cmd::capacity
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - capacity
    linkageType: ''
    returnType: (usize, usize)
    signature: pub(crate) fn capacity(&self) -> (usize, usize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/redis-rs/redis/src/cmd.rs:536,1
    - Dst: clear
      Src: /src/redis-rs/redis/src/cmd.rs:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 544
      start: 535
    functionDepth: 16
    functionLinenumber: 535
    functionLinenumberEnd: 544
    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:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 563
      start: 560
    functionDepth: 22
    functionLinenumber: 560
    functionLinenumberEnd: 563
    functionName: Cmd::arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 170
    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:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 570
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 570
    functionName: Cmd::take
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 1
    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:591,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cmd.rs:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 594
      start: 590
    functionDepth: 20
    functionLinenumber: 590
    functionLinenumberEnd: 594
    functionName: Cmd::cursor_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 4
    functionsReached:
    - push
    - Some
    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:603,1
    - Dst: Cmd::is_empty
      Src: /src/redis-rs/redis/src/cmd.rs:604,1
    - Dst: Cmd::write_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 609
      start: 602
    functionDepth: 16
    functionLinenumber: 602
    functionLinenumberEnd: 609
    functionName: Cmd::get_packed_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 11
    functionsReached:
    - Vec::new
    - Cmd::is_empty
    - 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:620,1
    - Dst: Cmd::args_iter
      Src: /src/redis-rs/redis/src/cmd.rs:620,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cmd.rs:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dst
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 621
      start: 619
    functionDepth: 5
    functionLinenumber: 619
    functionLinenumberEnd: 621
    functionName: Cmd::write_packed_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 1
    functionsReached:
    - write_command_to_vec
    - Cmd::args_iter
    - 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: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
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 625
      start: 623
    functionDepth: 4
    functionLinenumber: 623
    functionLinenumberEnd: 625
    functionName: Cmd::write_packed_command_preallocated
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::args_iter
    - write_command
    - io::Result::unwrap
    - 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:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 631
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 631
    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:638,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:639,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/cmd.rs:639,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/cmd.rs:639,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cmd.rs:640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 642
      start: 637
    functionDepth: 14
    functionLinenumber: 637
    functionLinenumberEnd: 642
    functionName: Cmd::query
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 20
    functionsReached:
    - Err
    - types::from_redis_value
    - extract_error
    - '&mut dyn ConnectionLike::req_command'
    - Ok
    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:651,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:652,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/cmd.rs:652,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/cmd.rs:652,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut impl crate::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 653
      start: 647
    functionDepth: 14
    functionLinenumber: 647
    functionLinenumberEnd: 653
    functionName: Cmd::query_async
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 29
    functionsReached:
    - types::from_redis_value
    - '&mut impl crate::aio::ConnectionLike::req_packed_command'
    - extract_error
    - 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:661,1
    - Dst: from_redis_value::<(u64, _)>
      Src: /src/redis-rs/redis/src/cmd.rs:662,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/cmd.rs:665,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:668,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:670,1
    - Dst: T::from_each_redis_values
      Src: /src/redis-rs/redis/src/cmd.rs:670,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - value
    argTypes:
    - crate::Value
    constantsTouched: []
    func_position:
      end: 671
      start: 657
    functionDepth: 11
    functionLinenumber: 657
    functionLinenumberEnd: 671
    functionName: Cmd::set_cursor_and_get_batch
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Some
    - from_redis_value::<(u64, _)>
    - impl combine::Parser::looks_like_cursor
    - types::from_redis_value
    - Ok
    - T::from_each_redis_values
    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:692,1
    - Dst: Cmd::set_cursor_and_get_batch
      Src: /src/redis-rs/redis/src/cmd.rs:694,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:696,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 703
      start: 688
    functionDepth: 12
    functionLinenumber: 688
    functionLinenumberEnd: 703
    functionName: Cmd::iter
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Ok
    - '&mut dyn ConnectionLike::req_command'
    - RedisResult::into_iter
    - Cmd::set_cursor_and_get_batch
    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:726,1
    - Dst: Cmd::set_cursor_and_get_batch
      Src: /src/redis-rs/redis/src/cmd.rs:728,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:730,1
    - Dst: IterOrFuture::Iter
      Src: /src/redis-rs/redis/src/cmd.rs:731,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&''a mut (dyn AsyncConnection + Send)'
    constantsTouched: []
    func_position:
      end: 737
      start: 722
    functionDepth: 18
    functionLinenumber: 722
    functionLinenumberEnd: 737
    functionName: Cmd::iter_async
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - IterOrFuture::Iter
    - '&''a mut (dyn AsyncConnection + Send)::req_packed_command'
    - Cmd::set_cursor_and_get_batch
    - RedisResult::into_iter
    - Ok
    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:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 746
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 746
    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:754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut impl crate::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 755
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 755
    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:760,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cmd.rs:760,1
    - Dst: Arg::Simple
      Src: /src/redis-rs/redis/src/cmd.rs:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 769
      start: 758
    functionDepth: 16
    functionLinenumber: 758
    functionLinenumberEnd: 769
    functionName: Cmd::args_iter
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 4
    functionsReached:
    - Arg::Simple
    - iter
    - 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: 804
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 804
    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: 810
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 810
    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:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - command_cache_config
    argTypes:
    - CommandCacheConfig
    constantsTouched: []
    func_position:
      end: 818
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 818
    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: 824
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 824
    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:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 828
      start: 826
    functionDepth: 2
    functionLinenumber: 826
    functionLinenumberEnd: 828
    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:841,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 844
      start: 840
    functionDepth: 23
    functionLinenumber: 840
    functionLinenumberEnd: 844
    functionName: cmd
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 194
    functionsReached:
    - Cmd::new
    - Cmd::arg
    linkageType: ''
    returnType: Cmd
    signature: 'pub fn cmd(name: &str) -> Cmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode_command
      Src: /src/redis-rs/redis/src/cmd.rs:865,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cmd.rs:865,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cmd.rs:865,1
    - Dst: Arg::Simple
      Src: /src/redis-rs/redis/src/cmd.rs:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - args
    argTypes:
    - '&[Vec<u8>]'
    constantsTouched: []
    func_position:
      end: 866
      start: 864
    functionDepth: 32
    functionLinenumber: 864
    functionLinenumberEnd: 866
    functionName: pack_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Arg::Simple
    - iter
    - 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:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 871
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 871
    functionName: pipe
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 54
    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:880,1
    - Dst: impl Clone + ExactSizeIterator::map
      Src: /src/redis-rs/redis/src/cmd.rs:880,1
    - Dst: String::from_utf8
      Src: /src/redis-rs/redis/src/cmd.rs:882,1
    - Dst: Vec::to_vec
      Src: /src/redis-rs/redis/src/cmd.rs:882,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:882,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/cmd.rs:883,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cmd.rs:880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 886
      start: 879
    functionDepth: 32
    functionLinenumber: 879
    functionLinenumberEnd: 886
    functionName: tests::args_iter_to_str
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - String::from_utf8
    - collect
    - '&str::to_string'
    - Cmd::args_iter
    - unwrap
    - Vec::to_vec
    - impl Clone + ExactSizeIterator::map
    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:889,1
    - Dst: args_iter().collect::<Vec<_>>
      Src: /src/redis-rs/redis/src/cmd.rs:889,1
    - Dst: '&Cmd::args_iter'
      Src: /src/redis-rs/redis/src/cmd.rs:890,1
    - Dst: args_iter().collect::<Vec<_>>
      Src: /src/redis-rs/redis/src/cmd.rs:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - '&Cmd'
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 898
      start: 888
    functionDepth: 32
    functionLinenumber: 888
    functionLinenumberEnd: 898
    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:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - Cmd
    - Cmd
    constantsTouched: []
    func_position:
      end: 903
      start: 900
    functionDepth: 33
    functionLinenumber: 900
    functionLinenumberEnd: 903
    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:908,1
    - Dst: Cmd::write_arg_fmt
      Src: /src/redis-rs/redis/src/cmd.rs:909,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:910,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cmd.rs:910,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:912,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:921,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cmd.rs:921,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cmd.rs:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 923
      start: 906
    functionDepth: 24
    functionLinenumber: 906
    functionLinenumberEnd: 923
    functionName: tests::test_cmd_packed_command_simple_args
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - collect
    - cmd
    - map
    - Cmd::get_packed_command
    - Cmd::arg
    - Cmd::write_arg_fmt
    - into_iter
    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:928,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:929,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cmd.rs:929,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cmd.rs:929,1
    - Dst: cursor_arg
      Src: /src/redis-rs/redis/src/cmd.rs:929,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:931,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:940,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cmd.rs:940,1
    - Dst: chain
      Src: /src/redis-rs/redis/src/cmd.rs:940,1
    - Dst: std::iter::once
      Src: /src/redis-rs/redis/src/cmd.rs:943,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cmd.rs:940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 946
      start: 926
    functionDepth: 24
    functionLinenumber: 926
    functionLinenumberEnd: 946
    functionName: tests::test_cmd_packed_command_with_cursor
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - chain
    - collect
    - map
    - arg
    - cursor_arg
    - std::iter::once
    - Cmd::get_packed_command
    - Cmd::arg
    - cmd
    - into_iter
    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:950,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:951,1
    - Dst: '&mut Cmd::cursor_arg'
      Src: /src/redis-rs/redis/src/cmd.rs:951,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/cmd.rs:951,1
    - Dst: '&mut Cmd::clear'
      Src: /src/redis-rs/redis/src/cmd.rs:951,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:963,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 964
      start: 949
    functionDepth: 24
    functionLinenumber: 949
    functionLinenumberEnd: 964
    functionName: tests::test_cmd_clean
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::clear'
    - '&mut Cmd::cursor_arg'
    - Cmd::new
    - '&mut Cmd::set_no_response'
    - Cmd::arg
    - cmd
    - assert_practical_equivalent
    linkageType: ''
    returnType: void
    signature: fn test_cmd_clean()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cmd.rs:969,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:970,1
    - Dst: '&mut Cmd::cursor_arg'
      Src: /src/redis-rs/redis/src/cmd.rs:970,1
    - Dst: '&mut Cmd::set_cache_config'
      Src: /src/redis-rs/redis/src/cmd.rs:970,1
    - Dst: crate::CommandCacheConfig::default
      Src: /src/redis-rs/redis/src/cmd.rs:972,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/cmd.rs:970,1
    - Dst: '&mut Cmd::clear'
      Src: /src/redis-rs/redis/src/cmd.rs:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 984
      start: 968
    functionDepth: 24
    functionLinenumber: 968
    functionLinenumberEnd: 984
    functionName: tests::test_cmd_clean_cache_aio
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::clear'
    - '&mut Cmd::cursor_arg'
    - '&mut Cmd::set_no_response'
    - crate::CommandCacheConfig::default
    - Cmd::arg
    - cmd
    - '&mut Cmd::set_cache_config'
    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:990,1
    - Dst: Cmd::writer_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:992,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:993,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:993,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:994,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:994,1
    - Dst: impl Write + '_::flush
      Src: /src/redis-rs/redis/src/cmd.rs:995,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:995,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:998,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:999,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 987
    functionDepth: 21
    functionLinenumber: 987
    functionLinenumberEnd: 1002
    functionName: tests::test_cmd_writer_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::new
    - Cmd::write_arg
    - Cmd::writer_for_next_arg
    - unwrap
    - assert_practical_equivalent
    - impl Write + '_::flush
    - Poll::unwrap
    - impl Write + '_::write_all
    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:1008,1
    - Dst: Cmd::writer_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1010,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:1011,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1011,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:1012,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1012,1
    - Dst: impl Write + '_::flush
      Src: /src/redis-rs/redis/src/cmd.rs:1013,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1013,1
    - Dst: Cmd::writer_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1016,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:1017,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1017,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:1018,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1018,1
    - Dst: impl Write + '_::flush
      Src: /src/redis-rs/redis/src/cmd.rs:1019,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1019,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1022,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1023,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1024,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1007
    functionDepth: 21
    functionLinenumber: 1007
    functionLinenumberEnd: 1027
    functionName: tests::test_cmd_writer_for_next_arg_multiple
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::new
    - Cmd::write_arg
    - Cmd::writer_for_next_arg
    - unwrap
    - assert_practical_equivalent
    - impl Write + '_::flush
    - Poll::unwrap
    - impl Write + '_::write_all
    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:1032,1
    - Dst: Cmd::writer_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1034,1
    - Dst: impl Write + '_::flush
      Src: /src/redis-rs/redis/src/cmd.rs:1035,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1035,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1038,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1039,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1031
    functionDepth: 21
    functionLinenumber: 1031
    functionLinenumberEnd: 1042
    functionName: tests::test_cmd_writer_for_next_arg_empty
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::new
    - Cmd::write_arg
    - Cmd::writer_for_next_arg
    - assert_practical_equivalent
    - impl Write + '_::flush
    - Poll::unwrap
    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:1049,1
    - Dst: Cmd::bufmut_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1051,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1052,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1053,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1056,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1057,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1048
    functionDepth: 21
    functionLinenumber: 1048
    functionLinenumberEnd: 1060
    functionName: tests::test_cmd_bufmut_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - impl bytes::BufMut + '_::put_slice
    - Cmd::new
    - Cmd::write_arg
    - Cmd::bufmut_for_next_arg
    - assert_practical_equivalent
    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:1067,1
    - Dst: Cmd::bufmut_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1069,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1070,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1071,1
    - Dst: Cmd::bufmut_for_next_arg
      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: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1076,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1079,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1080,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1081,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1066
    functionDepth: 21
    functionLinenumber: 1066
    functionLinenumberEnd: 1084
    functionName: tests::test_cmd_bufmut_for_next_arg_multiple
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - impl bytes::BufMut + '_::put_slice
    - Cmd::new
    - Cmd::write_arg
    - Cmd::bufmut_for_next_arg
    - assert_practical_equivalent
    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:1090,1
    - Dst: Cmd::bufmut_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1092,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1095,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1096,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1089
    functionDepth: 21
    functionLinenumber: 1089
    functionLinenumberEnd: 1099
    functionName: tests::test_cmd_bufmut_for_next_arg_empty
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::write_arg
    - assert_practical_equivalent
    - Cmd::new
    - Cmd::bufmut_for_next_arg
    linkageType: ''
    returnType: void
    signature: fn test_cmd_bufmut_for_next_arg_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1104,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cmd.rs:1107,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cmd.rs:1111,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cmd.rs:1111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1116
    functionName: tests::test_cmd_arg_idx
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - arg
    - Cmd::new
    linkageType: ''
    returnType: void
    signature: fn test_cmd_arg_idx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/macros.rs:2,1
    - Dst: ::std::convert::From::from
      Src: /src/redis-rs/redis/src/macros.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 7
    functionName: fail
    functionSourceFile: /src/redis-rs/redis/src/macros.rs
    functionUses: 0
    functionsReached:
    - Err
    - ::std::convert::From::from
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mpsc::channel
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:414,1
    - Dst: PipelineSink::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:416,1
    - Dst: stream::poll_fn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:422,1
    - Dst: "(\n        PendingRequest::poll_recv"
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:422,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:422,1
    - Dst: forward
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:422,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:422,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: 427
      start: 403
    functionDepth: 26
    functionLinenumber: 403
    functionLinenumberEnd: 427
    functionName: Pipeline::new
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 4
    functionsReached:
    - PipelineSink::new
    - "(\n        PendingRequest::poll_recv"
    - map
    - mpsc::channel
    - forward
    - stream::poll_fn
    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: 30
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: Pipeline::with_capacity
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - Vec::with_capacity
    - HashSet::new
    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: 25
    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: 28
    functionLinenumber: 177
    functionLinenumberEnd: 200
    functionName: Pipeline::query
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 1
    functionsReached:
    - Pipeline::complete_request
    - '&mut dyn ConnectionLike::supports_pipelining'
    - encode_pipeline
    - fail
    - '&mut dyn ConnectionLike::req_packed_commands'
    - len
    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: 25
    functionLinenumber: 205
    functionLinenumberEnd: 218
    functionName: Pipeline::query_async
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 5
    functionsReached:
    - '&mut impl crate::aio::ConnectionLike::req_packed_commands'
    - Pipeline::complete_request
    - len
    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: 30
    functionLinenumber: 238
    functionLinenumberEnd: 258
    functionName: Pipeline::complete_request
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 2
    functionsReached:
    - Err
    - Pipeline::is_transaction
    - into
    - types::from_redis_value
    - Pipeline::compose_response
    - pop
    - Ok
    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: 31
    functionLinenumber: 267
    functionLinenumberEnd: 287
    functionName: write_pipeline
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 1
    functionsReached:
    - '&mut Vec<u8>::reserve'
    - sum
    - RedisResult::iter
    - map
    - cmd::cmd_len
    - Cmd::write_packed_command_preallocated
    - RedisResult::write_packed_command_preallocated
    - cmd::cmd
    linkageType: ''
    returnType: void
    signature: 'fn write_pipeline(rv: &mut Vec<u8>, cmds: &[Cmd], atomic: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/redis-rs/redis/src/pipeline.rs:6,1
    - Dst: implement_pipeline_commands::add_command
      Src: /src/redis-rs/redis/src/pipeline.rs:14,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/pipeline.rs:14,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/pipeline.rs:19,1
    - Dst: len
      Src: /src/redis-rs/redis/src/pipeline.rs:31,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/pipeline.rs:33,1
    - Dst: implement_pipeline_commands::get_last_command
      Src: /src/redis-rs/redis/src/pipeline.rs:45,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/pipeline.rs:46,1
    - Dst: clear
      Src: /src/redis-rs/redis/src/pipeline.rs:57,1
    - Dst: clear
      Src: /src/redis-rs/redis/src/pipeline.rs:58,1
    - Dst: len
      Src: /src/redis-rs/redis/src/pipeline.rs:63,1
    - Dst: 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: 20
    functionLinenumber: 290
    functionLinenumberEnd: 401
    functionName: implement_pipeline_commands
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - iter
    - then
    - extract_error
    - Self::new
    - Cmd::arg
    - Value::Array
    - insert
    - contains
    - Err
    - clear
    - crate::RedisError::pipeline
    - enumerate
    - filter_map
    - implement_pipeline_commands::filter_ignored_results
    - into_iter
    - types::from_redis_value
    - push
    - Ok
    - cmd::cmd
    - implement_pipeline_commands::get_last_command
    - collect
    - Some
    - clone
    - implement_pipeline_commands::add_command
    - is_empty
    - len
    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: 28
    functionLinenumber: 432
    functionLinenumberEnd: 442
    functionName: tests::test_pipe
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::ignore
    - pipe
    - Cmd::cmd
    - 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:
    - ServerError
    - Value::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: 29
    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:
    - complete_request
    - test_pipe
    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: 29
    functionLinenumber: 462
    functionLinenumberEnd: 470
    functionName: tests::test_pipeline_passes_errors_from_ignored_commands
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - to_string
    - unwrap_err
    - compose_response::<Vec<Value>>
    - test_pipe
    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: 29
    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:
    - unwrap
    - "ignore_errors()\n            .compose_response::<Vec<RedisResult<Value>>>"
    - ignore_errors
    - test_pipe
    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: 22
    functionsReached:
    - T::into_connection_info
    - Ok
    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:
    - connect
    - Some
    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: C::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
    - C::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:208,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/client.rs:210,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/client.rs:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 204
    functionDepth: 32
    functionLinenumber: 204
    functionLinenumberEnd: 216
    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:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 32
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: AsyncConnectionConfig::new
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 20
    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: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    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: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    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:268,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/client.rs:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sender
    argTypes:
    - impl AsyncPushSender
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: AsyncConnectionConfig::set_push_sender
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - std::sync::Arc::new
    - AsyncConnectionConfig::set_push_sender_internal
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_push_sender(self, sender: impl AsyncPushSender) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/client.rs:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sender
    argTypes:
    - std::sync::Arc<dyn AsyncPushSender>
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 277
    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:282,1
    - Dst: Cache::Config
      Src: /src/redis-rs/redis/src/client.rs:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cache_config
    argTypes:
    - CacheConfig
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    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:291,1
    - Dst: Cache::Manager
      Src: /src/redis-rs/redis/src/client.rs:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cache_manager
    argTypes:
    - CacheManager
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    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:299,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/client.rs:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dns_resolver
    argTypes:
    - impl AsyncDNSResolver
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: AsyncConnectionConfig::set_dns_resolver
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - std::sync::Arc::new
    - AsyncConnectionConfig::set_dns_resolver_internal
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_dns_resolver(self, dns_resolver: impl AsyncDNSResolver)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/client.rs:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dns_resolver
    argTypes:
    - std::sync::Arc<dyn AsyncDNSResolver>
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    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:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 327
    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:356,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/client.rs:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: AsyncConnectionConfig::set_credentials_provider
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - std::sync::Arc::new
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_credentials_provider<P>(mut self, provider: P) -> SelfwhereP:
      StreamingCredentialsProvider + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/src/client.rs:372,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/client.rs:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 33
    functionLinenumber: 369
    functionLinenumberEnd: 374
    functionName: Client::get_multiplexed_async_connection
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Client::get_multiplexed_async_connection_with_config
    - AsyncConnectionConfig::new
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn get_multiplexed_async_connection(&self,) -> RedisResult<crate::aio::MultiplexedConnection>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/client.rs:383,1
    - Dst: get_multiplexed_async_connection_inner_with_timeout::<crate::aio::tokio::Tokio>
      Src: /src/redis-rs/redis/src/client.rs:385,1
    - Dst: get_multiplexed_async_connection_inner_with_timeout::<crate::aio::smol::Smol>
      Src: /src/redis-rs/redis/src/client.rs:393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&AsyncConnectionConfig'
    constantsTouched: []
    func_position:
      end: 399
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 399
    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::smol::Smol>
    - get_multiplexed_async_connection_inner_with_timeout::<crate::aio::tokio::Tokio>
    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:421,1
    - Dst: Client::clone
      Src: /src/redis-rs/redis/src/client.rs:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 26
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: Client::get_connection_manager
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - crate::aio::ConnectionManager::new
    - Client::clone
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn get_connection_manager(&self) -> RedisResult<crate::aio::ConnectionManager>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::aio::ConnectionManager::new_with_config
      Src: /src/redis-rs/redis/src/client.rs:447,1
    - Dst: Client::clone
      Src: /src/redis-rs/redis/src/client.rs:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - config
    argTypes:
    - crate::aio::ConnectionManagerConfig
    constantsTouched: []
    func_position:
      end: 448
      start: 443
    functionDepth: 26
    functionLinenumber: 443
    functionLinenumberEnd: 448
    functionName: Client::get_connection_manager_with_config
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - crate::aio::ConnectionManager::new_with_config
    - Client::clone
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn get_connection_manager_with_config(&self,config: crate::aio::ConnectionManagerConfig,)
      -> RedisResult<crate::aio::ConnectionManager>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TcpListener::timeout
      Src: /src/redis-rs/redis/src/client.rs:459,1
    - Dst: get_multiplexed_async_connection_inner::<T>
      Src: /src/redis-rs/redis/src/client.rs:461,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/client.rs:465,1
    - Dst: get_multiplexed_async_connection_inner::<T>
      Src: /src/redis-rs/redis/src/client.rs:465,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/client.rs:471,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/client.rs:472,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/client.rs:473,1
    - Dst: into
      Src: /src/redis-rs/redis/src/client.rs:473,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - config
    - rt
    argTypes:
    - '&AsyncConnectionConfig'
    - Runtime
    constantsTouched: []
    func_position:
      end: 475
      start: 450
    functionDepth: 19
    functionLinenumber: 450
    functionLinenumberEnd: 475
    functionName: Client::get_multiplexed_async_connection_inner_with_timeout
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - TcpListener::timeout
    - get_multiplexed_async_connection_inner::<T>
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn get_multiplexed_async_connection_inner_with_timeout<T>(&self,config:
      &AsyncConnectionConfig,rt: Runtime,) -> RedisResult<crate::aio::MultiplexedConnection>whereT:
      crate::aio::RedisRuntime,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_multiplexed_async_connection_inner::<T>
      Src: /src/redis-rs/redis/src/client.rs:484,1
    - Dst: T::spawn
      Src: /src/redis-rs/redis/src/client.rs:487,1
    - Dst: bool::set_task_handle
      Src: /src/redis-rs/redis/src/client.rs:488,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/client.rs:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&AsyncConnectionConfig'
    constantsTouched: []
    func_position:
      end: 490
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 490
    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:502,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/client.rs:502,1
    - Dst: get_simple_async_connection::<T>
      Src: /src/redis-rs/redis/src/client.rs:506,1
    - Dst: crate::aio::MultiplexedConnection::new_with_config
      Src: /src/redis-rs/redis/src/client.rs:507,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/client.rs:510,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&AsyncConnectionConfig'
    constantsTouched: []
    func_position:
      end: 513
      start: 492
    functionDepth: 26
    functionLinenumber: 492
    functionLinenumberEnd: 513
    functionName: Client::create_multiplexed_async_connection_inner
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Self::clone
    - crate::aio::MultiplexedConnection::new_with_config
    - unwrap_or
    - as_deref
    - get_simple_async_connection::<T>
    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:519,1
    - Dst: get_simple_async_connection::<crate::aio::tokio::Tokio>
      Src: /src/redis-rs/redis/src/client.rs:522,1
    - Dst: get_simple_async_connection::<crate::aio::smol::Smol>
      Src: /src/redis-rs/redis/src/client.rs:528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - dns_resolver
    argTypes:
    - '&dyn AsyncDNSResolver'
    constantsTouched: []
    func_position:
      end: 532
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 532
    functionName: Client::get_simple_async_connection_dynamically
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Runtime::locate
    - get_simple_async_connection::<crate::aio::tokio::Tokio>
    - get_simple_async_connection::<crate::aio::smol::Smol>
    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:541,1
    - Dst: crate::aio::connect_simple::<T>
      Src: /src/redis-rs/redis/src/client.rs:542,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/client.rs:542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - dns_resolver
    argTypes:
    - '&dyn AsyncDNSResolver'
    constantsTouched: []
    func_position:
      end: 546
      start: 534
    functionDepth: 27
    functionLinenumber: 534
    functionLinenumberEnd: 546
    functionName: Client::get_simple_async_connection
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - boxed
    - crate::aio::connect_simple::<T>
    - 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: 551
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 551
    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:557,1
    - Dst: crate::aio::PubSub::new
      Src: /src/redis-rs/redis/src/client.rs:561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 562
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 562
    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:567,1
    - Dst: crate::aio::Monitor::new
      Src: /src/redis-rs/redis/src/client.rs:570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 571
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 571
    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:579,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/src/client.rs:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 580
      start: 578
    functionDepth: 33
    functionLinenumber: 578
    functionLinenumberEnd: 580
    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:588,1
    - Dst: req_packed_commands
      Src: /src/redis-rs/redis/src/client.rs:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&[u8]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 590
      start: 582
    functionDepth: 35
    functionLinenumber: 582
    functionLinenumberEnd: 590
    functionName: Client::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Client::get_connection
    - req_packed_commands
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_packed_commands(&mut self,cmd: &[u8],offset: usize,count: usize,)
      -> RedisResult<Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 594
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 594
    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:597,1
    - Dst: RedisResult::check_connection
      Src: /src/redis-rs/redis/src/client.rs:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 602
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 602
    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:605,1
    - Dst: RedisResult::is_open
      Src: /src/redis-rs/redis/src/client.rs:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 610
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 610
    functionName: Client::is_open
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Client::get_connection
    - RedisResult::is_open
    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: 621
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 621
    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:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 628
      start: 625
    functionDepth: 33
    functionLinenumber: 625
    functionLinenumberEnd: 628
    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:633,1
    - Dst: Self::set_pipeline_buffer_size
      Src: /src/redis-rs/redis/src/client.rs:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 635
      start: 632
    functionDepth: 33
    functionLinenumber: 632
    functionLinenumberEnd: 635
    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: '&''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: 31
    functionLinenumber: 291
    functionLinenumberEnd: 309
    functionName: EntraIdCredentialsProvider::validate_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Err
    - trim
    - RedisError::from
    - is_empty
    - Ok
    - '&''static Vec::is_empty'
    linkageType: ''
    returnType: RedisResult
    signature: 'fn validate_scopes(scopes: &[String]) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: secret
      Src: /src/redis-rs/redis/src/entra_id.rs: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: 33
    functionLinenumber: 312
    functionLinenumberEnd: 317
    functionName: EntraIdCredentialsProvider::convert_credentials
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - secret
    - to_string
    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:
    - map_err
    - RedisError::from
    - std::sync::Arc::try_unwrap
    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: 26
    functionLinenumber: 350
    functionLinenumberEnd: 375
    functionName: EntraIdCredentialsProvider::notify_subscribers
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Err
    - Self::convert_error_ref
    - Self::send
    - '&SharedSubscriptions::lock'
    - Self::is_closed
    - futures_util::future::join_all
    - iter
    - Self::convert_credentials
    - '&''static str::to_owned'
    - map
    - clone
    - Result<AccessToken, azure_core::Error>::as_ref
    - retain
    - Self::expect
    - Ok
    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: 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: 26
    functionLinenumber: 378
    functionLinenumberEnd: 455
    functionName: EntraIdCredentialsProvider::start_refresh_service
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - secret
    - notify
    - compute_sleep_duration_on_success
    - Self::convert_credentials
    - map
    - unwrap
    - Self::with_factor
    - '&''static str::clone'
    - tokio::spawn
    - sleep
    - Self::write
    - std::time::Duration::from_millis
    - credentials_management_utils::extract_oid_from_jwt
    - tokio::time::sleep
    - with_max_times
    - Poll::unwrap
    - with_jitter
    - with_min_delay
    - lock
    - '&str::to_string'
    - is_some
    - Arc::clone
    - '&''static Vec::iter'
    - retry
    - Self::get_token
    - collect
    - Some
    - clone
    - with_max_delay
    - ExponentialBuilder::default
    - Self::notify_subscribers
    - as_millis
    - TlsFilePaths::as_str
    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
    - unwrap
    - lock
    - abort
    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: 32
    functionLinenumber: 471
    functionLinenumberEnd: 485
    functionName: EntraIdCredentialsProvider::new_developer_tools_with_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - Self::unwrap_credential
    - RedisServer::map_err
    - Self::validate_scopes
    - DeveloperToolsCredential::new
    - Arc::new
    - Ok
    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: 32
    functionLinenumber: 503
    functionLinenumberEnd: 521
    functionName: EntraIdCredentialsProvider::new_client_secret_with_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 1
    functionsReached:
    - into
    - ClientSecretCredential::new
    - Default::default
    - Self::unwrap_credential
    - RedisServer::map_err
    - Self::validate_scopes
    - Arc::new
    - Ok
    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: 32
    functionLinenumber: 539
    functionLinenumberEnd: 571
    functionName: EntraIdCredentialsProvider::new_client_certificate_with_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 1
    functionsReached:
    - Default::default
    - into
    - Self::unwrap_credential
    - RedisServer::map_err
    - Self::validate_scopes
    - Some
    - ClientCertificateCredential::new
    - Secret::new
    - Arc::new
    - Ok
    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: 32
    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:
    - Default::default
    - ManagedIdentityCredential::new
    - Self::unwrap_credential
    - RedisServer::map_err
    - Self::validate_scopes
    - Arc::new
    - Ok
    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: 32
    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:
    - Default::default
    - ManagedIdentityCredential::new
    - Self::unwrap_credential
    - RedisServer::map_err
    - Self::validate_scopes
    - Arc::new
    - Ok
    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: 32
    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: 27
    functionLinenumber: 639
    functionLinenumberEnd: 653
    functionName: EntraIdCredentialsProvider::start
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - unwrap_or_else
    - OffsetDateTime::now_utc
    - try_into
    - std::time::Duration::from_secs
    - checked_sub
    - EntraIdCredentialsProvider::start_refresh_service
    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: 20
    functionLinenumber: 657
    functionLinenumberEnd: 676
    functionName: EntraIdCredentialsProvider::subscribe
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - read
    - chain
    - map
    - futures_util::stream::once
    - clone
    - recv
    - unwrap
    - push
    - futures_util::stream::unfold
    - boxed
    - expect
    - tokio::sync::mpsc::channel::<RedisResult<BasicAuth>>
    - lock
    - Ok
    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:
    - field
    - finish
    - debug_struct
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EntraIdCredentialsProvider::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: 34
    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_developer_tools
    - EntraIdCredentialsProvider::new_client_secret
    - EntraIdCredentialsProvider::new_system_assigned_managed_identity
    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: 33
    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: 33
    functionLinenumber: 754
    functionLinenumberEnd: 762
    functionName: tests::test_custom_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap
    - EntraIdCredentialsProvider::new_developer_tools_with_scopes
    - clone
    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: 22
    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
    - call_once
    - String::is_err
    - env_logger::builder
    - is_test
    - filter_level
    - init
    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: 33
    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:
    - EntraIdCredentialsProvider::new_with_credential
    - Arc::new
    - RedisResult::unwrap
    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: 23
    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:
    - std::time::Duration::from_millis
    - start
    - tokio::time::sleep
    - create_mock_entra_id_credentials_provider
    - next
    - clone
    - RetryConfig::default
    - unwrap
    - MockTokenCredential::success
    - subscribe
    - init_logger
    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: 23
    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:
    - std::time::Duration::from_millis
    - start
    - Self::set_exponent_base
    - create_mock_entra_id_credentials_provider
    - next
    - clone
    - MockTokenCredential::failure
    - RetryConfig::default
    - Self::set_max_delay
    - subscribe
    - Self::set_min_delay
    - Self::set_number_of_retries
    - init_logger
    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: 23
    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:
    - std::time::Duration::from_millis
    - MockTokenCredential::alternating_fail_success
    - start
    - tokio::time::sleep
    - create_mock_entra_id_credentials_provider
    - next
    - clone
    - RetryConfig::default
    - unwrap
    - subscribe
    - init_logger
    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: 23
    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:
    - MockTokenCredential::multiple_tokens
    - start
    - create_mock_entra_id_credentials_provider
    - next
    - clone
    - RetryConfig::default
    - unwrap
    - subscribe
    - init_logger
    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: 23
    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:
    - MockTokenCredential::multiple_tokens
    - start
    - tokio::time::sleep
    - create_mock_entra_id_credentials_provider
    - next
    - clone
    - RetryConfig::default
    - unwrap
    - std::time::Duration::from_secs
    - subscribe
    - init_logger
    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: 34
    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:
    - panic::catch_unwind
    - create_mock_entra_id_credentials_provider
    - MockTokenCredential::success
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_mock_scope_validation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/src/entra_id.rs: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: 23
    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:
    - MockTokenCredential::multiple_tokens
    - start
    - drop
    - create_mock_entra_id_credentials_provider
    - next
    - RetryConfig::default
    - unwrap
    - subscribe
    - init_logger
    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: 23
    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:
    - std::time::Duration::from_millis
    - start
    - tokio::time::sleep
    - create_mock_entra_id_credentials_provider
    - drop
    - RetryConfig::default
    - MockTokenCredential::success
    - init_logger
    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: 26
    functionLinenumber: 27
    functionLinenumberEnd: 53
    functionName: err_parser
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - into
    - errors::ServerError
    - Option::into
    - map
    - next
    - unwrap
    - splitn
    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::Other
    - PushKind::as_str
    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: 85
    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
    - map_position
    - ParsingError::from
    - RedisError::from
    - to_string
    - translate_position
    - is_unexpected_end_of_input
    - io::Error::from
    - map_range
    - buffer
    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:
    - Err
    - to_redis_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: 31
    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:
    - Err
    - to_redis_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: 32
    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: 32
    functionLinenumber: 487
    functionLinenumberEnd: 498
    functionName: tests::decode_eof_returns_none_at_eof
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - bytes::BytesMut::from
    - ValueCodec::default
    linkageType: ''
    returnType: void
    signature: fn decode_eof_returns_none_at_eof()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValueCodec::default
      Src: /src/redis-rs/redis/src/parser.rs: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: 32
    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:
    - bytes::BytesMut::from
    - '&str::as_slice'
    - ValueCodec::default
    - unwrap
    - Self::decode_eof
    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: 33
    functionLinenumber: 529
    functionLinenumberEnd: 551
    functionName: tests::parse_nested_error_and_handle_more_inputs
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_nested_error_and_handle_more_inputs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs: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: 33
    functionLinenumber: 554
    functionLinenumberEnd: 586
    functionName: tests::decode_resp3_double
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn decode_resp3_double()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs: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: 33
    functionLinenumber: 589
    functionLinenumberEnd: 600
    functionName: tests::decode_resp3_map
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - as_map_iter
    - RedisResult::unwrap
    - 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: 33
    functionLinenumber: 603
    functionLinenumberEnd: 612
    functionName: tests::decode_resp3_boolean
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn decode_resp3_boolean()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 624
      start: 615
    functionDepth: 33
    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: 33
    functionLinenumber: 627
    functionLinenumberEnd: 637
    functionName: tests::decode_resp3_big_number
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - Value::BigNumber
    - parse_redis_value
    - unwrap
    - RedisResult::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: 33
    functionLinenumber: 640
    functionLinenumberEnd: 648
    functionName: tests::decode_resp3_set
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - as_sequence
    - RedisResult::unwrap
    - 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: 33
    functionLinenumber: 651
    functionLinenumberEnd: 664
    functionName: tests::decode_resp3_push
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn decode_resp3_push()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/parser.rs: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: 27
    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
    - as_bytes
    - parse_redis_value
    - 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: 27
    functionLinenumber: 690
    functionLinenumberEnd: 708
    functionName: tests::test_max_recursion_depth_map
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - repeat
    - extend
    - to_vec
    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: 33
    functionLinenumber: 7
    functionLinenumberEnd: 30
    functionName: impl_bb8_manage_connection
    functionSourceFile: /src/redis-rs/redis/src/bb8.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - Cmd::ping
    - as_str
    - query_async
    - Ok
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tls_mode
    argTypes:
    - TlsMode
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 181
    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:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - redis_connection_info
    argTypes:
    - RedisConnectionInfo
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 189
    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: crate::ConnectionAddr::Tcp
      Src: /src/redis-rs/redis/src/sentinel.rs:198,1
    - Dst: ClusterClientBuilder::as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:206,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:206,1
    - Dst: transpose
      Src: /src/redis-rs/redis/src/sentinel.rs:206,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:216,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:218,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:218,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/sentinel.rs:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - ip
    - port
    - certs
    argTypes:
    - String
    - u16
    - '&Option<TlsCertificates>'
    constantsTouched: []
    func_position:
      end: 221
      start: 191
    functionDepth: 28
    functionLinenumber: 191
    functionLinenumberEnd: 221
    functionName: SentinelNodeConnectionInfo::create_connection_info
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - transpose
    - crate::ConnectionAddr::Tcp
    - Default::default
    - map
    - clone
    - ClusterClientBuilder::as_ref
    - unwrap_or_default
    - Ok
    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: 231
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 231
    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:235,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 25
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: sentinel_masters_cmd
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - crate::cmd
    - Cmd::arg
    linkageType: ''
    returnType: crate::Cmd
    signature: fn sentinel_masters_cmd() -> crate::Cmd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:241,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:242,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - master_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 25
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: sentinel_replicas_cmd
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - crate::cmd
    - Cmd::arg
    linkageType: ''
    returnType: crate::Cmd
    signature: 'fn sentinel_replicas_cmd(master_name: &str) -> crate::Cmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&HashMap<String, String>::get'
      Src: /src/redis-rs/redis/src/sentinel.rs:248,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:248,1
    - Dst: TlsFilePaths::as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:248,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:248,1
    - Dst: '&HashMap<String, String>::contains_key'
      Src: /src/redis-rs/redis/src/sentinel.rs:249,1
    - Dst: '&HashMap<String, String>::contains_key'
      Src: /src/redis-rs/redis/src/sentinel.rs:250,1
    - Dst: '&HashMap<String, String>::get'
      Src: /src/redis-rs/redis/src/sentinel.rs:251,1
    - Dst: is_some_and
      Src: /src/redis-rs/redis/src/sentinel.rs:251,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:252,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:252,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:252,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/src/sentinel.rs:254,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/sentinel.rs:254,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 2
    argNames:
    - master_info
    - service_name
    argTypes:
    - '&HashMap<String, String>'
    - '&str'
    constantsTouched: []
    func_position:
      end: 255
      start: 247
    functionDepth: 33
    functionLinenumber: 247
    functionLinenumberEnd: 255
    functionName: is_master_valid
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - contains
    - parse::<u16>
    - '&HashMap<String, String>::get'
    - Some
    - map
    - is_some_and
    - '&HashMap<String, String>::contains_key'
    - is_ok
    - TlsFilePaths::as_str
    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:258,1
    - Dst: '&HashMap<String, String>::contains_key'
      Src: /src/redis-rs/redis/src/sentinel.rs:259,1
    - Dst: '&HashMap<String, String>::get'
      Src: /src/redis-rs/redis/src/sentinel.rs:260,1
    - Dst: is_some_and
      Src: /src/redis-rs/redis/src/sentinel.rs:260,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:262,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:262,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/src/sentinel.rs:263,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/sentinel.rs:263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - replica_info
    argTypes:
    - '&HashMap<String, String>'
    constantsTouched: []
    func_position:
      end: 264
      start: 257
    functionDepth: 35
    functionLinenumber: 257
    functionLinenumberEnd: 264
    functionName: is_replica_valid
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - contains
    - parse::<u16>
    - '&HashMap<String, String>::get'
    - is_some_and
    - '&HashMap<String, String>::contains_key'
    - is_ok
    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:268,1
    - Dst: random_range
      Src: /src/redis-rs/redis/src/sentinel.rs:268,1
    - Dst: NonZeroUsize::into
      Src: /src/redis-rs/redis/src/sentinel.rs:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - max
    argTypes:
    - NonZeroUsize
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: random_replica_index
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - random_range
    - NonZeroUsize::into
    - rand::rng
    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:272,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/sentinel.rs:273,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/src/sentinel.rs:279,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:279,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:281,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:281,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - addresses
    argTypes:
    - '&[ConnectionInfo]'
    constantsTouched: []
    func_position:
      end: 283
      start: 271
    functionDepth: 33
    functionLinenumber: 271
    functionLinenumberEnd: 283
    functionName: build_replica_clients
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - ConnectionAddr::clone
    - collect
    - Client::open
    - RedisResult::is_empty
    - RedisResult::iter
    - map
    - fail
    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:289,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/sentinel.rs:290,1
    - Dst: Option<usize>::unwrap_or
      Src: /src/redis-rs/redis/src/sentinel.rs:296,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:299,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:300,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:301,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:301,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:302,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:303,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:310,1
    - Dst: None::expect
      Src: /src/redis-rs/redis/src/sentinel.rs:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 2
    argNames:
    - addresses
    - start_index
    argTypes:
    - '&[ConnectionInfo]'
    - Option<usize>
    constantsTouched: []
    func_position:
      end: 311
      start: 285
    functionDepth: 27
    functionLinenumber: 285
    functionLinenumberEnd: 311
    functionName: try_connect_to_first_replica
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Err
    - Client::open
    - RedisResult::is_empty
    - Option<usize>::unwrap_or
    - Some
    - RedisResult::len
    - clone
    - fail
    - None::expect
    - Ok
    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:317,1
    - Dst: std::iter::Chain::filter
      Src: /src/redis-rs/redis/src/sentinel.rs:317,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:317,1
    - Dst: redis::ConnectionInfo::remove
      Src: /src/redis-rs/redis/src/sentinel.rs:322,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:322,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/src/sentinel.rs:323,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:323,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: 326
      start: 313
    functionDepth: 28
    functionLinenumber: 313
    functionLinenumberEnd: 326
    functionName: valid_addrs
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - parse::<u16>
    - map
    - std::iter::Chain::filter
    - Vec<HashMap<String, String>>::into_iter
    - unwrap
    - redis::ConnectionInfo::remove
    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:331,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:331,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:332,1
    - Dst: check_role
      Src: /src/redis-rs/redis/src/sentinel.rs:335,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:337,1
    - Dst: check_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:341,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:343,1
    - Dst: evaluate_role_check_errors
      Src: /src/redis-rs/redis/src/sentinel.rs:346,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:346,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 347
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 347
    functionName: determine_master_from_role_or_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - Client::open
    - check_role
    - evaluate_role_check_errors
    - redis::ConnectionInfo::clone
    - check_info_replication
    - RedisResult::unwrap_err
    - Ok
    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:350,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:350,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:351,1
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:352,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 353
      start: 349
    functionDepth: 30
    functionLinenumber: 349
    functionLinenumberEnd: 353
    functionName: get_node_role
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - crate::cmd
    - Client::open
    - redis::ConnectionInfo::clone
    - 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:356,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 357
      start: 355
    functionDepth: 30
    functionLinenumber: 355
    functionLinenumberEnd: 357
    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:360,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:360,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/src/sentinel.rs:360,1
    - Dst: parse_replication_info
      Src: /src/redis-rs/redis/src/sentinel.rs:363,1
    - Dst: HashMap::get
      Src: /src/redis-rs/redis/src/sentinel.rs:364,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:365,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:365,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:366,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 371
      start: 359
    functionDepth: 25
    functionLinenumber: 359
    functionLinenumberEnd: 371
    functionName: check_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - Err
    - HashMap::get
    - '&mut Cmd::query'
    - crate::cmd
    - redis::Cmd::arg
    - RedisError::from
    - parse_replication_info
    - clone
    - Ok
    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:378,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:378,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:379,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - role_err
    - fallback_role_err
    argTypes:
    - RedisError
    - RedisError
    constantsTouched: []
    func_position:
      end: 383
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 383
    functionName: evaluate_role_check_errors
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - Err
    - into
    - RedisError::kind
    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:407,1
    - Dst: is_master_valid
      Src: /src/redis-rs/redis/src/sentinel.rs:407,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:409,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:411,1
    - Dst: determine_master_from_role_or_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:412,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:413,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: 421
      start: 401
    functionDepth: 29
    functionLinenumber: 401
    functionLinenumberEnd: 421
    functionName: find_valid_master
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - valid_addrs
    - determine_master_from_role_or_info_replication
    - SentinelNodeConnectionInfo::create_connection_info
    - is_master_valid
    - Ok
    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:427,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:427,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:428,1
    - Dst: async_check_role
      Src: /src/redis-rs/redis/src/sentinel.rs:430,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:432,1
    - Dst: async_check_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:436,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:438,1
    - Dst: evaluate_role_check_errors
      Src: /src/redis-rs/redis/src/sentinel.rs:441,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:441,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:441,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 442
      start: 424
    functionDepth: 34
    functionLinenumber: 424
    functionLinenumberEnd: 442
    functionName: async_determine_master_from_role_or_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Client::open
    - evaluate_role_check_errors
    - unwrap_err
    - redis::ConnectionInfo::clone
    - get_multiplexed_async_connection
    - async_check_info_replication
    - async_check_role
    - Ok
    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:448,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:448,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:449,1
    - Dst: async_check_role
      Src: /src/redis-rs/redis/src/sentinel.rs:451,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:453,1
    - Dst: async_check_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:457,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:459,1
    - Dst: evaluate_role_check_errors
      Src: /src/redis-rs/redis/src/sentinel.rs:462,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:462,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:462,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 463
      start: 445
    functionDepth: 34
    functionLinenumber: 445
    functionLinenumberEnd: 463
    functionName: async_determine_slave_from_role_or_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Client::open
    - evaluate_role_check_errors
    - unwrap_err
    - redis::ConnectionInfo::clone
    - get_multiplexed_async_connection
    - async_check_info_replication
    - async_check_role
    - Ok
    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:467,1
    - Dst: redis::Cmd::query_async
      Src: /src/redis-rs/redis/src/sentinel.rs:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut MultiplexedConnection'
    constantsTouched: []
    func_position:
      end: 469
      start: 466
    functionDepth: 30
    functionLinenumber: 466
    functionLinenumberEnd: 469
    functionName: async_check_role
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 2
    functionsReached:
    - crate::cmd
    - redis::Cmd::query_async
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_check_role(conn: &mut MultiplexedConnection) -> RedisResult<Role>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:473,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:473,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/src/sentinel.rs:473,1
    - Dst: parse_replication_info
      Src: /src/redis-rs/redis/src/sentinel.rs:478,1
    - Dst: HashMap::get
      Src: /src/redis-rs/redis/src/sentinel.rs:479,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:480,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:480,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:481,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut MultiplexedConnection'
    constantsTouched: []
    func_position:
      end: 486
      start: 472
    functionDepth: 25
    functionLinenumber: 472
    functionLinenumberEnd: 486
    functionName: async_check_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 2
    functionsReached:
    - Err
    - HashMap::get
    - crate::cmd
    - redis::Cmd::arg
    - RedisError::from
    - parse_replication_info
    - clone
    - '&mut Cmd::query_async'
    - Ok
    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:496,1
    - Dst: is_master_valid
      Src: /src/redis-rs/redis/src/sentinel.rs:496,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:498,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:500,1
    - Dst: async_determine_master_from_role_or_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:501,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:502,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: 510
      start: 490
    functionDepth: 29
    functionLinenumber: 490
    functionLinenumberEnd: 510
    functionName: async_find_valid_master
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - valid_addrs
    - async_determine_master_from_role_or_info_replication
    - SentinelNodeConnectionInfo::create_connection_info
    - is_master_valid
    - Ok
    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:535,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/src/sentinel.rs:535,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:536,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:535,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:539,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:539,1
    - Dst: std::iter::Chain::filter
      Src: /src/redis-rs/redis/src/sentinel.rs:539,1
    - Dst: get_node_role
      Src: /src/redis-rs/redis/src/sentinel.rs:542,1
    - Dst: RedisResult::is_ok_and
      Src: /src/redis-rs/redis/src/sentinel.rs:542,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:539,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: 545
      start: 530
    functionDepth: 29
    functionLinenumber: 530
    functionLinenumberEnd: 545
    functionName: get_valid_replicas_addresses
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - valid_addrs
    - RedisResult::is_ok_and
    - collect
    - std::iter::Chain::filter
    - RedisResult::into_iter
    - "map(|(ip, port)| node_connection_info.create_connection_info(ip, port, certs))\n\
      \        .collect::<RedisResult<Vec<ConnectionInfo>>>"
    - SentinelNodeConnectionInfo::create_connection_info
    - impl Iterator::map
    - Ok
    - get_node_role
    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:582,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - ConnectionInfo
    constantsTouched: []
    func_position:
      end: 592
      start: 581
    functionDepth: 35
    functionLinenumber: 581
    functionLinenumberEnd: 592
    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:594,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/src/sentinel.rs:594,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:595,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:594,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:598,1
    - Dst: futures_util::stream::iter
      Src: /src/redis-rs/redis/src/sentinel.rs:598,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/sentinel.rs:598,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:598,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: 602
      start: 576
    functionDepth: 29
    functionLinenumber: 576
    functionLinenumberEnd: 602
    functionName: async_get_valid_replicas_addresses
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - valid_addrs
    - collect
    - "map(|(ip, port)| node_connection_info.create_connection_info(ip, port, certs))\n\
      \        .collect::<RedisResult<Vec<_>>>"
    - filter_map
    - SentinelNodeConnectionInfo::create_connection_info
    - impl Iterator::map
    - futures_util::stream::iter
    - Ok
    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:609,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:609,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:610,1
    - Dst: bool::replace
      Src: /src/redis-rs/redis/src/sentinel.rs:611,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:612,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - connection
    - connection_info
    argTypes:
    - '&mut Option<AsyncConnection>'
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 613
      start: 605
    functionDepth: 34
    functionLinenumber: 605
    functionLinenumberEnd: 613
    functionName: async_reconnect
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Client::open
    - redis::ConnectionInfo::clone
    - bool::replace
    - get_multiplexed_async_connection
    - Ok
    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:621,1
    - Dst: async_reconnect
      Src: /src/redis-rs/redis/src/sentinel.rs:622,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/src/sentinel.rs:625,1
    - Dst: '&mut Option<AsyncConnection>::as_mut'
      Src: /src/redis-rs/redis/src/sentinel.rs:625,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:625,1
    - Dst: is_unrecoverable_error
      Src: /src/redis-rs/redis/src/sentinel.rs:628,1
    - Dst: is_io_error
      Src: /src/redis-rs/redis/src/sentinel.rs:628,1
    - Dst: async_reconnect
      Src: /src/redis-rs/redis/src/sentinel.rs:629,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/src/sentinel.rs:630,1
    - Dst: '&mut Option<AsyncConnection>::as_mut'
      Src: /src/redis-rs/redis/src/sentinel.rs:630,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:630,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:632,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: 637
      start: 616
    functionDepth: 35
    functionLinenumber: 616
    functionLinenumberEnd: 637
    functionName: async_try_single_sentinel
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Err
    - is_io_error
    - '&mut Option<AsyncConnection>::is_none'
    - Cmd::query_async
    - async_reconnect
    - unwrap
    - is_unrecoverable_error
    - '&mut Option<AsyncConnection>::as_mut'
    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:643,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:643,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:644,1
    - Dst: bool::replace
      Src: /src/redis-rs/redis/src/sentinel.rs:645,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - connection
    - connection_info
    argTypes:
    - '&mut Option<Connection>'
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 647
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 647
    functionName: reconnect
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - get_connection
    - Client::open
    - redis::ConnectionInfo::clone
    - bool::replace
    - Ok
    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:654,1
    - Dst: reconnect
      Src: /src/redis-rs/redis/src/sentinel.rs:655,1
    - Dst: Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:658,1
    - Dst: '&mut Option<Connection>::as_mut'
      Src: /src/redis-rs/redis/src/sentinel.rs:658,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:658,1
    - Dst: is_unrecoverable_error
      Src: /src/redis-rs/redis/src/sentinel.rs:661,1
    - Dst: is_io_error
      Src: /src/redis-rs/redis/src/sentinel.rs:661,1
    - Dst: reconnect
      Src: /src/redis-rs/redis/src/sentinel.rs:662,1
    - Dst: Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:663,1
    - Dst: '&mut Option<Connection>::as_mut'
      Src: /src/redis-rs/redis/src/sentinel.rs:663,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:663,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:665,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: 670
      start: 649
    functionDepth: 30
    functionLinenumber: 649
    functionLinenumberEnd: 670
    functionName: try_single_sentinel
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - '&mut Option<Connection>::is_none'
    - Err
    - is_io_error
    - '&mut Option<Connection>::as_mut'
    - unwrap
    - Cmd::query
    - is_unrecoverable_error
    - reconnect
    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:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - params
    argTypes:
    - Vec<T>
    constantsTouched: []
    func_position:
      end: 686
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 686
    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:692,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/sentinel.rs:693,1
    - Dst: Vec<T>::into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:699,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/sentinel.rs:699,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:701,1
    - Dst: "into_iter()\n            .map(|p| p.into_connection_info())\n        \
        \    .collect::<RedisResult<Vec<ConnectionInfo>>>"
      Src: /src/redis-rs/redis/src/sentinel.rs:699,1
    - Dst: '&Vec::iter'
      Src: /src/redis-rs/redis/src/sentinel.rs:704,1
    - Dst: any
      Src: /src/redis-rs/redis/src/sentinel.rs:704,1
    - Dst: redis::ConnectionInfo::redis_settings
      Src: /src/redis-rs/redis/src/sentinel.rs:706,1
    - Dst: resize_with
      Src: /src/redis-rs/redis/src/sentinel.rs:714,1
    - Dst: '&Vec::len'
      Src: /src/redis-rs/redis/src/sentinel.rs:714,1
    - Dst: resize_with
      Src: /src/redis-rs/redis/src/sentinel.rs:719,1
    - Dst: '&Vec::len'
      Src: /src/redis-rs/redis/src/sentinel.rs:719,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:721,1
    - Dst: random_replica_index
      Src: /src/redis-rs/redis/src/sentinel.rs:725,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:725,1
    - Dst: RedisServer::unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:725,1
    - Dst: resize_with
      Src: /src/redis-rs/redis/src/sentinel.rs:733,1
    - Dst: '&Vec::len'
      Src: /src/redis-rs/redis/src/sentinel.rs:733,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:735,1
    - Dst: random_replica_index
      Src: /src/redis-rs/redis/src/sentinel.rs:739,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:739,1
    - Dst: RedisServer::unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:739,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:745,1
    - Dst: random_replica_index
      Src: /src/redis-rs/redis/src/sentinel.rs:748,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:748,1
    - Dst: RedisServer::unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:748,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:755,1
    - Dst: random_replica_index
      Src: /src/redis-rs/redis/src/sentinel.rs:758,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:758,1
    - Dst: RedisServer::unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 69
    argCount: 2
    argNames:
    - params
    - certs
    argTypes:
    - Vec<T>
    - Option<TlsCertificates>
    constantsTouched: []
    func_position:
      end: 761
      start: 688
    functionDepth: 33
    functionLinenumber: 688
    functionLinenumberEnd: 761
    functionName: Sentinel::build_inner
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - NonZeroUsize::new
    - random_replica_index
    - '&Vec::len'
    - std::iter::Chain::map
    - Vec<T>::into_iter
    - fail
    - Ok
    - RedisServer::unwrap
    - '&Vec::iter'
    - redis::ConnectionInfo::redis_settings
    - resize_with
    - into_connection_info
    - "into_iter()\n            .map(|p| p.into_connection_info())\n            .collect::<RedisResult<Vec<ConnectionInfo>>>"
    - Vec<T>::is_empty
    - any
    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:775,1
    - Dst: zip
      Src: /src/redis-rs/redis/src/sentinel.rs:775,1
    - Dst: iter_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:778,1
    - Dst: try_single_sentinel
      Src: /src/redis-rs/redis/src/sentinel.rs:780,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:780,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:782,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:785,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:791,1
    - Dst: None::expect
      Src: /src/redis-rs/redis/src/sentinel.rs:791,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - Cmd
    constantsTouched: []
    func_position:
      end: 792
      start: 773
    functionDepth: 33
    functionLinenumber: 773
    functionLinenumberEnd: 792
    functionName: Sentinel::try_all_sentinels
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Err
    - zip
    - iter
    - Some
    - None::expect
    - Cmd::clone
    - iter_mut
    - try_single_sentinel
    - Ok
    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:797,1
    - Dst: sentinel_masters_cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 798
      start: 796
    functionDepth: 34
    functionLinenumber: 796
    functionLinenumberEnd: 798
    functionName: Sentinel::get_sentinel_masters
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Sentinel::try_all_sentinels
    - sentinel_masters_cmd
    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:804,1
    - Dst: sentinel_replicas_cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - service_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 805
      start: 800
    functionDepth: 34
    functionLinenumber: 800
    functionLinenumberEnd: 805
    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:823,1
    - Dst: find_valid_master
      Src: /src/redis-rs/redis/src/sentinel.rs:824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - '&SentinelNodeConnectionInfo'
    constantsTouched: []
    func_position:
      end: 825
      start: 818
    functionDepth: 35
    functionLinenumber: 818
    functionLinenumberEnd: 825
    functionName: Sentinel::find_master_address
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - find_valid_master
    - Sentinel::get_sentinel_masters
    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:843,1
    - Dst: get_valid_replicas_addresses
      Src: /src/redis-rs/redis/src/sentinel.rs:844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - '&SentinelNodeConnectionInfo'
    constantsTouched: []
    func_position:
      end: 845
      start: 838
    functionDepth: 35
    functionLinenumber: 838
    functionLinenumberEnd: 845
    functionName: Sentinel::find_valid_replica_addresses
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Sentinel::get_sentinel_replicas
    - get_valid_replicas_addresses
    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:857,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:857,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 859
      start: 851
    functionDepth: 36
    functionLinenumber: 851
    functionLinenumberEnd: 859
    functionName: Sentinel::master_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 9
    functionsReached:
    - Client::open
    - Sentinel::find_master_address
    - SentinelNodeConnectionInfo::unwrap_or_default
    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:870,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:871,1
    - Dst: build_replica_clients
      Src: /src/redis-rs/redis/src/sentinel.rs:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 873
      start: 865
    functionDepth: 36
    functionLinenumber: 865
    functionLinenumberEnd: 873
    functionName: Sentinel::get_replica_clients
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 4
    functionsReached:
    - Sentinel::find_valid_replica_addresses
    - build_replica_clients
    - SentinelNodeConnectionInfo::unwrap_or_default
    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:881,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:882,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:883,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:883,1
    - Dst: RedisServer::map
      Src: /src/redis-rs/redis/src/sentinel.rs:883,1
    - Dst: try_connect_to_first_replica
      Src: /src/redis-rs/redis/src/sentinel.rs:884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 885
      start: 876
    functionDepth: 36
    functionLinenumber: 876
    functionLinenumberEnd: 885
    functionName: Sentinel::replica_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 2
    functionsReached:
    - NonZeroUsize::new
    - RedisServer::map
    - RedisResult::len
    - try_connect_to_first_replica
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Sentinel::find_valid_replica_addresses
    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:896,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:897,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/sentinel.rs:898,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:899,1
    - Dst: try_connect_to_first_replica
      Src: /src/redis-rs/redis/src/sentinel.rs:901,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 902
      start: 891
    functionDepth: 36
    functionLinenumber: 891
    functionLinenumberEnd: 902
    functionName: Sentinel::replica_rotate_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 3
    functionsReached:
    - RedisResult::is_empty
    - Some
    - RedisResult::len
    - try_connect_to_first_replica
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Sentinel::find_valid_replica_addresses
    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:911,1
    - Dst: zip
      Src: /src/redis-rs/redis/src/sentinel.rs:911,1
    - Dst: iter_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:914,1
    - Dst: async_try_single_sentinel
      Src: /src/redis-rs/redis/src/sentinel.rs:916,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:916,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:918,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:921,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:927,1
    - Dst: None::expect
      Src: /src/redis-rs/redis/src/sentinel.rs:927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - Cmd
    constantsTouched: []
    func_position:
      end: 928
      start: 909
    functionDepth: 33
    functionLinenumber: 909
    functionLinenumberEnd: 928
    functionName: Sentinel::async_try_all_sentinels
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Err
    - zip
    - iter
    - Some
    - async_try_single_sentinel
    - None::expect
    - Cmd::clone
    - iter_mut
    - Ok
    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:931,1
    - Dst: sentinel_masters_cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 932
      start: 930
    functionDepth: 34
    functionLinenumber: 930
    functionLinenumberEnd: 932
    functionName: Sentinel::async_get_sentinel_masters
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Sentinel::async_try_all_sentinels
    - sentinel_masters_cmd
    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:938,1
    - Dst: sentinel_replicas_cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - service_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 940
      start: 934
    functionDepth: 34
    functionLinenumber: 934
    functionLinenumberEnd: 940
    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:958,1
    - Dst: async_find_valid_master
      Src: /src/redis-rs/redis/src/sentinel.rs:959,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - '&SentinelNodeConnectionInfo'
    constantsTouched: []
    func_position:
      end: 960
      start: 953
    functionDepth: 35
    functionLinenumber: 953
    functionLinenumberEnd: 960
    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:978,1
    - Dst: async_get_valid_replicas_addresses
      Src: /src/redis-rs/redis/src/sentinel.rs:979,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - '&SentinelNodeConnectionInfo'
    constantsTouched: []
    func_position:
      end: 980
      start: 973
    functionDepth: 35
    functionLinenumber: 973
    functionLinenumberEnd: 980
    functionName: Sentinel::async_find_valid_replica_addresses
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Sentinel::async_get_sentinel_replicas
    - async_get_valid_replicas_addresses
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_find_valid_replica_addresses(&mut self,service_name:
      &str,node_connection_info: &SentinelNodeConnectionInfo,) -> RedisResult<Vec<ConnectionInfo>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::async_find_master_address
      Src: /src/redis-rs/redis/src/sentinel.rs:991,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:992,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 995
      start: 986
    functionDepth: 36
    functionLinenumber: 986
    functionLinenumberEnd: 995
    functionName: Sentinel::async_master_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 8
    functionsReached:
    - Client::open
    - Sentinel::async_find_master_address
    - SentinelNodeConnectionInfo::unwrap_or_default
    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:1006,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1009,1
    - Dst: build_replica_clients
      Src: /src/redis-rs/redis/src/sentinel.rs:1012,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 1013
      start: 1001
    functionDepth: 36
    functionLinenumber: 1001
    functionLinenumberEnd: 1013
    functionName: Sentinel::async_get_replica_clients
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 4
    functionsReached:
    - build_replica_clients
    - Sentinel::async_find_valid_replica_addresses
    - SentinelNodeConnectionInfo::unwrap_or_default
    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:1022,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1025,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:1028,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:1028,1
    - Dst: RedisServer::map
      Src: /src/redis-rs/redis/src/sentinel.rs:1028,1
    - Dst: try_connect_to_first_replica
      Src: /src/redis-rs/redis/src/sentinel.rs:1029,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 1030
      start: 1017
    functionDepth: 36
    functionLinenumber: 1017
    functionLinenumberEnd: 1030
    functionName: Sentinel::async_replica_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - NonZeroUsize::new
    - RedisServer::map
    - RedisResult::len
    - Sentinel::async_find_valid_replica_addresses
    - try_connect_to_first_replica
    - SentinelNodeConnectionInfo::unwrap_or_default
    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:1041,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1044,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/sentinel.rs:1047,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:1048,1
    - Dst: try_connect_to_first_replica
      Src: /src/redis-rs/redis/src/sentinel.rs:1050,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1050,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 1051
      start: 1036
    functionDepth: 36
    functionLinenumber: 1036
    functionLinenumberEnd: 1051
    functionName: Sentinel::async_replica_rotate_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 2
    functionsReached:
    - RedisResult::is_empty
    - Some
    - RedisResult::len
    - Sentinel::async_find_valid_replica_addresses
    - try_connect_to_first_replica
    - SentinelNodeConnectionInfo::unwrap_or_default
    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:1074,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis/src/sentinel.rs:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - client
    argTypes:
    - SentinelClient
    constantsTouched: []
    func_position:
      end: 1075
      start: 1073
    functionDepth: 31
    functionLinenumber: 1073
    functionLinenumberEnd: 1075
    functionName: LockedSentinelClient::new
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - Mutex::new
    - LockedSentinelClient
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(client: SentinelClient) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/redis-rs/redis/src/sentinel.rs:1080,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:1080,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1079
    functionDepth: 2
    functionLinenumber: 1079
    functionLinenumberEnd: 1081
    functionName: LockedSentinelClient::get_connection
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - get_connection
    - lock
    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:1121,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: 1128
      start: 1115
    functionDepth: 34
    functionLinenumber: 1115
    functionLinenumberEnd: 1128
    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:1137,1
    - Dst: Sentinel::build_inner
      Src: /src/redis-rs/redis/src/sentinel.rs:1139,1
    - Dst: Sentinel::build_inner
      Src: /src/redis-rs/redis/src/sentinel.rs:1141,1
    - Dst: impl AsRef<str>::as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:1142,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1142,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1143,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: 1146
      start: 1130
    functionDepth: 34
    functionLinenumber: 1130
    functionLinenumberEnd: 1146
    functionName: SentinelClient::build_inner
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - into
    - Sentinel::build_inner
    - impl AsRef<str>::as_ref
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Ok
    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:1151,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:1153,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1153,1
    - Dst: replica_for
      Src: /src/redis-rs/redis/src/sentinel.rs:1154,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:1156,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1149
    functionDepth: 38
    functionLinenumber: 1149
    functionLinenumberEnd: 1158
    functionName: SentinelClient::get_client
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - as_str
    - Some
    - replica_for
    - master_for
    linkageType: ''
    returnType: RedisResult
    signature: pub fn get_client(&mut self) -> RedisResult<Client>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1177,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1177,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:1183,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:1183,1
    - Dst: try_single_sentinel::<Role>
      Src: /src/redis-rs/redis/src/sentinel.rs:1184,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:1185,1
    - Dst: first_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:1187,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/sentinel.rs:1187,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:1193,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1176
    functionDepth: 2
    functionLinenumber: 1176
    functionLinenumberEnd: 1207
    functionName: SentinelClient::get_sentinel_client
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Err
    - Client::open
    - RedisError::from
    - unwrap_or
    - redis::ConnectionInfo::clone
    - try_single_sentinel::<Role>
    - Ok
    - first_mut
    - cmd::cmd
    linkageType: ''
    returnType: RedisResult
    signature: pub fn get_sentinel_client(&mut self) -> RedisResult<Client>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SentinelClient::get_client
      Src: /src/redis-rs/redis/src/sentinel.rs:1213,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:1214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1212
    functionDepth: 39
    functionLinenumber: 1212
    functionLinenumberEnd: 1215
    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:1227,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:1228,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1228,1
    - Dst: async_replica_for
      Src: /src/redis-rs/redis/src/sentinel.rs:1232,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:1233,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1224
    functionDepth: 38
    functionLinenumber: 1224
    functionLinenumberEnd: 1237
    functionName: SentinelClient::async_get_client
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - async_replica_for
    - as_str
    - Some
    - async_master_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:1256,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1256,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:1262,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:1262,1
    - Dst: async_try_single_sentinel::<Role>
      Src: /src/redis-rs/redis/src/sentinel.rs:1263,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:1264,1
    - Dst: first_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:1266,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/sentinel.rs:1266,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:1274,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1255
    functionDepth: 2
    functionLinenumber: 1255
    functionLinenumberEnd: 1288
    functionName: SentinelClient::async_get_sentinel_client
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Err
    - Client::open
    - RedisError::from
    - unwrap_or
    - redis::ConnectionInfo::clone
    - Ok
    - first_mut
    - async_try_single_sentinel::<Role>
    - cmd::cmd
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn async_get_sentinel_client(&mut self) -> RedisResult<Client>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SentinelClient::get_async_connection_with_config
      Src: /src/redis-rs/redis/src/sentinel.rs:1294,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/sentinel.rs:1294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1293
    functionDepth: 34
    functionLinenumber: 1293
    functionLinenumberEnd: 1296
    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:1305,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/src/sentinel.rs:1305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&AsyncConnectionConfig'
    constantsTouched: []
    func_position:
      end: 1309
      start: 1301
    functionDepth: 39
    functionLinenumber: 1301
    functionLinenumberEnd: 1309
    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:1344,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:1345,1
    - Dst: into_iter().collect::<Vec<_>>
      Src: /src/redis-rs/redis/src/sentinel.rs:1345,1
    - Dst: impl AsRef<str>::as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:1346,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - sentinels
    - service_name
    - server_type
    argTypes:
    - T
    - impl AsRef<str>
    - SentinelServerType
    constantsTouched: []
    func_position:
      end: 1367
      start: 1339
    functionDepth: 1
    functionLinenumber: 1339
    functionLinenumberEnd: 1367
    functionName: SentinelClientBuilder::new
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - into_iter().collect::<Vec<_>>
    - into
    - impl AsRef<str>::as_ref
    - RedisResult::into_iter
    - Ok
    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:1371,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1378,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1382,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1391,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/sentinel.rs:1397,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1398,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1398,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/sentinel.rs:1404,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1405,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1405,1
    - Dst: tls::retrieve_tls_certificates
      Src: /src/redis-rs/redis/src/sentinel.rs:1432,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1433,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/sentinel.rs:1437,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1438,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1438,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/sentinel.rs:1444,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1445,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1445,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/src/sentinel.rs:1454,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:1460,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1461,1
    - Dst: '&''static str::clone'
      Src: /src/redis-rs/redis/src/sentinel.rs:1461,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:1464,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1465,1
    - Dst: '&''static str::clone'
      Src: /src/redis-rs/redis/src/sentinel.rs:1465,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:1472,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:1472,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:1477,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/sentinel.rs:1478,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:1472,1
    - Dst: SentinelClient::build_inner
      Src: /src/redis-rs/redis/src/sentinel.rs:1482,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1485,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 165
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1370
    functionDepth: 33
    functionLinenumber: 1370
    functionLinenumberEnd: 1490
    functionName: SentinelClientBuilder::build
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Err
    - Default::default
    - Self::clone
    - collect
    - RedisError::from
    - Some
    - is_some
    - map
    - RedisConnectionInfo::default
    - as_ref
    - SentinelClient::build_inner
    - tls::retrieve_tls_certificates
    - '&''static str::clone'
    - into_iter
    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:1494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tls_mode
    argTypes:
    - TlsMode
    constantsTouched: []
    func_position:
      end: 1496
      start: 1493
    functionDepth: 0
    functionLinenumber: 1493
    functionLinenumberEnd: 1496
    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:1500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - i64
    constantsTouched: []
    func_position:
      end: 1502
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1502
    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:1509,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/sentinel.rs:1509,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - username
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 1511
      start: 1505
    functionDepth: 0
    functionLinenumber: 1505
    functionLinenumberEnd: 1511
    functionName: SentinelClientBuilder::set_client_to_redis_username
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - '&''static str::as_ref'
    - into
    - Some
    linkageType: ''
    returnType: 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:1518,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/sentinel.rs:1518,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - password
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 1520
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1520
    functionName: SentinelClientBuilder::set_client_to_redis_password
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - '&''static str::as_ref'
    - into
    - Some
    linkageType: ''
    returnType: 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:1527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 1529
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1529
    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:1537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - certificates
    argTypes:
    - TlsCertificates
    constantsTouched: []
    func_position:
      end: 1539
      start: 1533
    functionDepth: 0
    functionLinenumber: 1533
    functionLinenumberEnd: 1539
    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:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tls_mode
    argTypes:
    - TlsMode
    constantsTouched: []
    func_position:
      end: 1545
      start: 1542
    functionDepth: 0
    functionLinenumber: 1542
    functionLinenumberEnd: 1545
    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:1552,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/sentinel.rs:1552,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - username
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 1554
      start: 1548
    functionDepth: 0
    functionLinenumber: 1548
    functionLinenumberEnd: 1554
    functionName: SentinelClientBuilder::set_client_to_sentinel_username
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - '&''static str::as_ref'
    - into
    - Some
    linkageType: ''
    returnType: 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:1561,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/sentinel.rs:1561,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - password
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 1563
      start: 1557
    functionDepth: 0
    functionLinenumber: 1557
    functionLinenumberEnd: 1563
    functionName: SentinelClientBuilder::set_client_to_sentinel_password
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - '&''static str::as_ref'
    - into
    - Some
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_sentinel_password(mut self,password: impl AsRef<str>,)
      -> SentinelClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 1572
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1572
    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:1580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - certificates
    argTypes:
    - TlsCertificates
    constantsTouched: []
    func_position:
      end: 1582
      start: 1576
    functionDepth: 0
    functionLinenumber: 1576
    functionLinenumberEnd: 1582
    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: 833
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 833
    functionName: check_resp3
    functionSourceFile: /src/redis-rs/redis/src/lib.rs
    functionUses: 0
    functionsReached:
    - supports_resp3
    - Err
    - RedisError::from
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    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:92,1
    - Dst: assert_send::<PubSub>
      Src: /src/redis-rs/redis/src/aio/connection.rs:93,1
    - Dst: assert_send::<Monitor>
      Src: /src/redis-rs/redis/src/aio/connection.rs:94,1
    - Dst: assert_send::<ConnectionManager>
      Src: /src/redis-rs/redis/src/aio/connection.rs:96,1
    - Dst: assert_send::<cluster_async::ClusterConnection>
      Src: /src/redis-rs/redis/src/aio/connection.rs:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: tests::test_is_send
    functionSourceFile: /src/redis-rs/redis/src/aio/connection.rs
    functionUses: 0
    functionsReached:
    - assert_send::<Monitor>
    - assert_send::<cluster_async::ClusterConnection>
    - assert_send::<ConnectionManager>
    - assert_send::<MultiplexedConnection>
    - assert_send::<PubSub>
    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:
    - Duration::from_secs
    - Some
    - Duration::from_millis
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - number_of_retries
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: RetryConfig::set_number_of_retries
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_number_of_retries(mut self, number_of_retries: usize) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - min_delay
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: RetryConfig::set_min_delay
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_min_delay(mut self, min_delay: Duration) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/auth_management.rs:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - max_delay
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: RetryConfig::set_max_delay
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_max_delay(mut self, max_delay: Duration) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exponent_base
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: RetryConfig::set_exponent_base
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_exponent_base(mut self, exponent_base: f32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemTime::duration_since
      Src: /src/redis-rs/redis/src/auth_management.rs:101,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/auth_management.rs:102,1
    - Dst: Duration::from_secs_f64
      Src: /src/redis-rs/redis/src/auth_management.rs:102,1
    - Dst: as_secs_f64
      Src: /src/redis-rs/redis/src/auth_management.rs:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - received_at
    - expires_at
    - refresh_ratio
    argTypes:
    - SystemTime
    - SystemTime
    - f64
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: credentials_management_utils::calculate_refresh_threshold
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached:
    - Duration::from_secs_f64
    - Some
    - SystemTime::duration_since
    - as_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: 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: 34
    functionLinenumber: 112
    functionLinenumberEnd: 139
    functionName: credentials_management_utils::extract_oid_from_jwt
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 1
    functionsReached:
    - Err
    - strip_prefix
    - collect
    - String::from_utf8
    - find
    - '&str::to_string'
    - Result::split
    - trim_start
    - Ok
    - decode
    - to_string
    - map_err
    - len
    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:
    - Self::set_expiration_refresh_ratio
    - TokenRefreshConfig::default
    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:
    - SystemTime::now
    - credentials_management_utils::calculate_refresh_threshold
    - Duration::from_secs
    - TokenRefreshConfig::default
    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: 35
    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: 35
    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: 35
    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: 33
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: connect_tcp
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - TcpStream::connect
    - into
    - Arc::into_inner
    - try_into
    - into_inner
    - unwrap
    - crate::io::tcp::stream_with_settings
    linkageType: ''
    returnType: io::Result
    signature: 'async fn connect_tcp(addr: &SocketAddr,tcp_settings: &crate::io::tcp::TcpSettings,)
      -> io::Result<TcpStream>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TcpStream::connect_timeout
      Src: /src/redis-rs/redis/src/connection.rs:72,1
    - Dst: io::tcp::stream_with_settings
      Src: /src/redis-rs/redis/src/connection.rs:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - addr
    - timeout
    - tcp_settings
    argTypes:
    - '&SocketAddr'
    - Duration
    - '&TcpSettings'
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: connect_tcp_timeout
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - TcpStream::connect_timeout
    - io::tcp::stream_with_settings
    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:81,1
    - Dst: scheme
      Src: /src/redis-rs/redis/src/connection.rs:82,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 90
    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: 160
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 160
    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: 184
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 184
    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:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - insecure
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 209
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 209
    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:216,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 223
    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: 234
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 234
    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: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    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: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    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: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    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: 269
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 269
    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: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    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: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    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:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 303
    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:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 308
    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: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    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: 318
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 318
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 323
    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:327,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/connection.rs:327,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - username
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: RedisConnectionInfo::set_username
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - '&''static str::as_ref'
    - into
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_username(mut self, username: impl AsRef<str>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:333,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/connection.rs:333,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - password
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: RedisConnectionInfo::set_password
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - '&''static str::as_ref'
    - into
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_password(mut self, password: impl AsRef<str>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 341
    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: 347
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 347
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - i64
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 353
    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:365,1
    - Dst: field
      Src: /src/redis-rs/redis/src/connection.rs:367,1
    - Dst: field
      Src: /src/redis-rs/redis/src/connection.rs:368,1
    - Dst: field
      Src: /src/redis-rs/redis/src/connection.rs:369,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/connection.rs:369,1
    - Dst: map
      Src: /src/redis-rs/redis/src/connection.rs:369,1
    - Dst: field
      Src: /src/redis-rs/redis/src/connection.rs:370,1
    - Dst: field
      Src: /src/redis-rs/redis/src/connection.rs:371,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/connection.rs:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 374
      start: 357
    functionDepth: 28
    functionLinenumber: 357
    functionLinenumberEnd: 374
    functionName: RedisConnectionInfo::fmt
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - '&''static str::as_ref'
    - map
    - field
    - debug_struct
    - finish
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TlsFilePaths::into_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 382
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 382
    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:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: ConnectionInfo::into_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 2
    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:401,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/connection.rs:403,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/connection.rs:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 400
    functionDepth: 33
    functionLinenumber: 400
    functionLinenumberEnd: 406
    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:420,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:421,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 424
    functionName: '&str::into_connection_info'
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - into_connection_info
    - parse_redis_url
    - fail
    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:432,1
    - Dst: ConnectionAddr::Tcp
      Src: /src/redis-rs/redis/src/connection.rs:433,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:433,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/src/connection.rs:434,1
    - Dst: TcpSettings::default
      Src: /src/redis-rs/redis/src/connection.rs:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 437
      start: 431
    functionDepth: 33
    functionLinenumber: 431
    functionLinenumberEnd: 437
    functionName: (T, u16)::into_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - ConnectionAddr::Tcp
    - TcpSettings::default
    - into
    - RedisConnectionInfo::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:451,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:452,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 455
    functionName: String::into_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - into_connection_info
    - parse_redis_url
    - fail
    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:459,1
    - Dst: get
      Src: /src/redis-rs/redis/src/connection.rs:459,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:466,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - query
    argTypes:
    - '&HashMap<Cow<str>, Cow<str>>'
    constantsTouched: []
    func_position:
      end: 475
      start: 458
    functionDepth: 34
    functionLinenumber: 458
    functionLinenumberEnd: 475
    functionName: parse_protocol
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - fail
    - get
    - 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: 480
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 480
    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:483,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:497,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:498,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:499,1
    - Dst: is_wildcard_address
      Src: /src/redis-rs/redis/src/connection.rs:502,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:503,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/connection.rs:503,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:510,1
    - Dst: String::port
      Src: /src/redis-rs/redis/src/connection.rs:512,1
    - Dst: TcpListener::unwrap_or
      Src: /src/redis-rs/redis/src/connection.rs:512,1
    - Dst: String::scheme
      Src: /src/redis-rs/redis/src/connection.rs:513,1
    - Dst: String::scheme
      Src: /src/redis-rs/redis/src/connection.rs:513,1
    - Dst: String::fragment
      Src: /src/redis-rs/redis/src/connection.rs:516,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:523,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:537,1
    - Dst: ConnectionAddr::Tcp
      Src: /src/redis-rs/redis/src/connection.rs:542,1
    - Dst: String::query_pairs
      Src: /src/redis-rs/redis/src/connection.rs:544,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/connection.rs:544,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:545,1
    - Dst: String::path
      Src: /src/redis-rs/redis/src/connection.rs:548,1
    - Dst: trim_matches
      Src: /src/redis-rs/redis/src/connection.rs:548,1
    - Dst: parse::<i64>
      Src: /src/redis-rs/redis/src/connection.rs:550,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:550,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:551,1
    - Dst: String::username
      Src: /src/redis-rs/redis/src/connection.rs:554,1
    - Dst: '&''static str::is_empty'
      Src: /src/redis-rs/redis/src/connection.rs:554,1
    - Dst: percent_encoding::percent_decode
      Src: /src/redis-rs/redis/src/connection.rs:557,1
    - Dst: String::username
      Src: /src/redis-rs/redis/src/connection.rs:557,1
    - Dst: '&''static str::as_bytes'
      Src: /src/redis-rs/redis/src/connection.rs:557,1
    - Dst: decode_utf8
      Src: /src/redis-rs/redis/src/connection.rs:557,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:558,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:558,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:559,1
    - Dst: String::password
      Src: /src/redis-rs/redis/src/connection.rs:565,1
    - Dst: percent_encoding::percent_decode
      Src: /src/redis-rs/redis/src/connection.rs:566,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/connection.rs:566,1
    - Dst: decode_utf8
      Src: /src/redis-rs/redis/src/connection.rs:566,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:567,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:567,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:568,1
    - Dst: parse_protocol
      Src: /src/redis-rs/redis/src/connection.rs:575,1
    - Dst: TcpSettings::default
      Src: /src/redis-rs/redis/src/connection.rs:578,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 94
    argCount: 1
    argNames:
    - url
    argTypes:
    - url::Url
    constantsTouched: []
    func_position:
      end: 580
      start: 482
    functionDepth: 33
    functionLinenumber: 482
    functionLinenumberEnd: 580
    functionName: url_to_tcp_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - fail
    - '&''static str::as_bytes'
    - parse::<i64>
    - String::query_pairs
    - Err
    - parse_protocol
    - is_wildcard_address
    - String::fragment
    - TcpListener::unwrap_or
    - map_err
    - String::host
    - '&''static str::is_empty'
    - into
    - as_bytes
    - RedisError::from
    - decode_utf8
    - String::password
    - to_string
    - percent_encoding::percent_decode
    - Ok
    - ConnectionAddr::Tcp
    - String::port
    - TcpSettings::default
    - String::username
    - String::scheme
    - collect
    - Some
    - trim_matches
    - 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:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames: []
    argTypes:
    - url::Url
    constantsTouched: []
    func_position:
      end: 612
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 612
    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:616,1
    - Dst: url_to_tcp_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:617,1
    - Dst: url_to_unix_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:618,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 624
      start: 615
    functionDepth: 34
    functionLinenumber: 615
    functionLinenumberEnd: 624
    functionName: url::Url::into_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - url_to_unix_connection_info
    - url_to_tcp_connection_info
    - fail
    - url::Url::scheme
    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:675,1
    - Dst: rustls::client::danger::ServerCertVerified::assertion
      Src: /src/redis-rs/redis/src/connection.rs:675,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: 676
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 676
    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:684,1
    - Dst: rustls::client::danger::HandshakeSignatureValid::assertion
      Src: /src/redis-rs/redis/src/connection.rs:684,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: 685
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 685
    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:693,1
    - Dst: rustls::client::danger::HandshakeSignatureValid::assertion
      Src: /src/redis-rs/redis/src/connection.rs:693,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: 694
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 694
    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:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 698
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 698
    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:704,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/connection.rs:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 705
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 705
    functionName: NoCertificateVerification::fmt
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - finish
    - debug_struct
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - err
    argTypes:
    - '&rustls::Error'
    constantsTouched: []
    func_position:
      end: 724
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 724
    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:736,1
    - Dst: or_else
      Src: /src/redis-rs/redis/src/connection.rs:736,1
    - Dst: is_hostname_error
      Src: /src/redis-rs/redis/src/connection.rs:739,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:740,1
    - Dst: rustls::client::danger::ServerCertVerified::assertion
      Src: /src/redis-rs/redis/src/connection.rs:740,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:742,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: 745
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 745
    functionName: AcceptInvalidHostnamesCertVerifier::verify_server_cert
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Err
    - or_else
    - is_hostname_error
    - verify_server_cert
    - 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: verify_tls12_signature
      Src: /src/redis-rs/redis/src/connection.rs:753,1
    - Dst: or_else
      Src: /src/redis-rs/redis/src/connection.rs:753,1
    - Dst: is_hostname_error
      Src: /src/redis-rs/redis/src/connection.rs:756,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:757,1
    - Dst: rustls::client::danger::HandshakeSignatureValid::assertion
      Src: /src/redis-rs/redis/src/connection.rs:757,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:759,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: 762
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 762
    functionName: AcceptInvalidHostnamesCertVerifier::verify_tls12_signature
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Err
    - or_else
    - is_hostname_error
    - verify_tls12_signature
    - 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: verify_tls13_signature
      Src: /src/redis-rs/redis/src/connection.rs:770,1
    - Dst: or_else
      Src: /src/redis-rs/redis/src/connection.rs:770,1
    - Dst: is_hostname_error
      Src: /src/redis-rs/redis/src/connection.rs:773,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:774,1
    - Dst: rustls::client::danger::HandshakeSignatureValid::assertion
      Src: /src/redis-rs/redis/src/connection.rs:774,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:776,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: 779
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 779
    functionName: AcceptInvalidHostnamesCertVerifier::verify_tls13_signature
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - verify_tls13_signature
    - Err
    - or_else
    - is_hostname_error
    - 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_verify_schemes
      Src: /src/redis-rs/redis/src/connection.rs:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 783
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 783
    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:831,1
    - Dst: is_wildcard_address
      Src: /src/redis-rs/redis/src/connection.rs:833,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:834,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/connection.rs:839,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/connection.rs:841,1
    - Dst: ConnectionAddr::to_socket_addrs
      Src: /src/redis-rs/redis/src/connection.rs:845,1
    - Dst: connect_tcp_timeout
      Src: /src/redis-rs/redis/src/connection.rs:846,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:848,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:852,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:859,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:862,1
    - Dst: ActualConnection::Tcp
      Src: /src/redis-rs/redis/src/connection.rs:870,1
    - Dst: TlsConnector::builder
      Src: /src/redis-rs/redis/src/connection.rs:883,1
    - Dst: danger_accept_invalid_certs
      Src: /src/redis-rs/redis/src/connection.rs:883,1
    - Dst: danger_accept_invalid_hostnames
      Src: /src/redis-rs/redis/src/connection.rs:883,1
    - Dst: use_sni
      Src: /src/redis-rs/redis/src/connection.rs:883,1
    - Dst: build
      Src: /src/redis-rs/redis/src/connection.rs:883,1
    - Dst: TlsConnector::builder
      Src: /src/redis-rs/redis/src/connection.rs:889,1
    - Dst: danger_accept_invalid_hostnames
      Src: /src/redis-rs/redis/src/connection.rs:889,1
    - Dst: build
      Src: /src/redis-rs/redis/src/connection.rs:889,1
    - Dst: TlsConnector::new
      Src: /src/redis-rs/redis/src/connection.rs:893,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/connection.rs:895,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/connection.rs:898,1
    - Dst: connect
      Src: /src/redis-rs/redis/src/connection.rs:899,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:902,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/connection.rs:909,1
    - Dst: to_socket_addrs
      Src: /src/redis-rs/redis/src/connection.rs:909,1
    - Dst: connect_tcp_timeout
      Src: /src/redis-rs/redis/src/connection.rs:910,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:912,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:916,1
    - Dst: connect
      Src: /src/redis-rs/redis/src/connection.rs:921,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/connection.rs:921,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:923,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:926,1
    - Dst: ActualConnection::TcpNativeTls
      Src: /src/redis-rs/redis/src/connection.rs:934,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/connection.rs:934,1
    - Dst: create_rustls_config
      Src: /src/redis-rs/redis/src/connection.rs:947,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:947,1
    - Dst: rustls::ClientConnection::new
      Src: /src/redis-rs/redis/src/connection.rs:948,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:949,1
    - Dst: rustls::pki_types::ServerName::try_from
      Src: /src/redis-rs/redis/src/connection.rs:950,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/connection.rs:950,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/connection.rs:954,1
    - Dst: StreamOwned::new
      Src: /src/redis-rs/redis/src/connection.rs:955,1
    - Dst: to_socket_addrs
      Src: /src/redis-rs/redis/src/connection.rs:960,1
    - Dst: connect_tcp_timeout
      Src: /src/redis-rs/redis/src/connection.rs:961,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:963,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:967,1
    - Dst: StreamOwned::new
      Src: /src/redis-rs/redis/src/connection.rs:972,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:974,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:977,1
    - Dst: ActualConnection::TcpRustls
      Src: /src/redis-rs/redis/src/connection.rs:986,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/connection.rs:986,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:990,1
    - Dst: ActualConnection::Unix
      Src: /src/redis-rs/redis/src/connection.rs:996,1
    - Dst: UnixStream::connect
      Src: /src/redis-rs/redis/src/connection.rs:997,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1002,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 151
    argCount: 3
    argNames:
    - addr
    - timeout
    - tcp_settings
    argTypes:
    - '&ConnectionAddr'
    - Option<Duration>
    - '&TcpSettings'
    constantsTouched: []
    func_position:
      end: 1009
      start: 826
    functionDepth: 34
    functionLinenumber: 826
    functionLinenumberEnd: 1009
    functionName: ActualConnection::new
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - ActualConnection::Tcp
    - rustls::ClientConnection::new
    - UnixStream::connect
    - StreamOwned::new
    - fail
    - as_str
    - unwrap
    - Arc::new
    - ActualConnection::TcpRustls
    - is_wildcard_address
    - danger_accept_invalid_hostnames
    - connect_tcp
    - connect
    - TlsConnector::new
    - to_socket_addrs
    - rustls::pki_types::ServerName::try_from
    - Box::new
    - danger_accept_invalid_certs
    - create_rustls_config
    - to_owned
    - connect_tcp_timeout
    - build
    - TlsConnector::builder
    - Ok
    - ConnectionAddr::to_socket_addrs
    - Some
    - clone
    - ActualConnection::Unix
    - use_sni
    - ActualConnection::TcpNativeTls
    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:1014,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1014,1
    - Dst: PathBuf::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/connection.rs:1017,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1020,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1022,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/connection.rs:1027,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1027,1
    - Dst: PathBuf::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/connection.rs:1030,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1033,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1035,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/connection.rs:1040,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1040,1
    - Dst: PathBuf::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/connection.rs:1043,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1046,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1048,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/connection.rs:1053,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1053,1
    - Dst: PathBuf::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/connection.rs:1056,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1059,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1061,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 67
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1065
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1065
    functionName: ActualConnection::send_bytes
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - write_all
    - Err
    - PathBuf::is_unrecoverable_error
    - map_err
    - Ok
    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:1070,1
    - Dst: get_ref
      Src: /src/redis-rs/redis/src/connection.rs:1075,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1075,1
    - Dst: get_ref
      Src: /src/redis-rs/redis/src/connection.rs:1080,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1080,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1084,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1087,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 1088
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1088
    functionName: ActualConnection::set_write_timeout
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - set_write_timeout
    - get_ref
    - 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:1093,1
    - Dst: get_ref
      Src: /src/redis-rs/redis/src/connection.rs:1098,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1098,1
    - Dst: get_ref
      Src: /src/redis-rs/redis/src/connection.rs:1103,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1103,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1107,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 1111
      start: 1090
    functionDepth: 1
    functionLinenumber: 1090
    functionLinenumberEnd: 1111
    functionName: ActualConnection::set_read_timeout
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - set_read_timeout
    - get_ref
    - 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: 1123
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1123
    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:1132,1
    - Dst: bool::extend
      Src: /src/redis-rs/redis/src/connection.rs:1134,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/connection.rs:1134,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/connection.rs:1134,1
    - Dst: rustls_native_certs::load_native_certs
      Src: /src/redis-rs/redis/src/connection.rs:1141,1
    - Dst: pop
      Src: /src/redis-rs/redis/src/connection.rs:1142,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1143,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1143,1
    - Dst: bool::add
      Src: /src/redis-rs/redis/src/connection.rs:1146,1
    - Dst: rustls::ClientConfig::builder
      Src: /src/redis-rs/redis/src/connection.rs:1150,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/connection.rs:1152,1
    - Dst: Self::with_root_certificates
      Src: /src/redis-rs/redis/src/connection.rs:1153,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:1153,1
    - Dst: with_client_auth_cert
      Src: /src/redis-rs/redis/src/connection.rs:1160,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1160,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/connection.rs:1163,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:1166,1
    - Dst: with_no_client_auth
      Src: /src/redis-rs/redis/src/connection.rs:1170,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1184,1
    - Dst: Self::dangerous
      Src: /src/redis-rs/redis/src/connection.rs:1193,1
    - Dst: set_certificate_verifier
      Src: /src/redis-rs/redis/src/connection.rs:1193,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:1193,1
    - Dst: rustls::client::WebPkiServerVerifier::builder
      Src: /src/redis-rs/redis/src/connection.rs:1195,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:1195,1
    - Dst: build
      Src: /src/redis-rs/redis/src/connection.rs:1195,1
    - Dst: RedisResult::map_err
      Src: /src/redis-rs/redis/src/connection.rs:1195,1
    - Dst: rustls::Error::from
      Src: /src/redis-rs/redis/src/connection.rs:1199,1
    - Dst: rustls::OtherError
      Src: /src/redis-rs/redis/src/connection.rs:1199,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:1199,1
    - Dst: Self::with_root_certificates
      Src: /src/redis-rs/redis/src/connection.rs:1210,1
    - Dst: with_no_client_auth
      Src: /src/redis-rs/redis/src/connection.rs:1210,1
    - Dst: rustls::crypto::CryptoProvider::get_default
      Src: /src/redis-rs/redis/src/connection.rs:1220,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1221,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/connection.rs:1221,1
    - Dst: Self::dangerous
      Src: /src/redis-rs/redis/src/connection.rs:1226,1
    - Dst: set_certificate_verifier
      Src: /src/redis-rs/redis/src/connection.rs:1226,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:1228,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1232,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1235,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1240,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 102
    argCount: 2
    argNames:
    - insecure
    - tls_params
    argTypes:
    - bool
    - Option<TlsConnParams>
    constantsTouched: []
    func_position:
      end: 1242
      start: 1127
    functionDepth: 34
    functionLinenumber: 1127
    functionLinenumberEnd: 1242
    functionName: create_rustls_config
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - with_client_auth_cert
    - iter
    - Self::with_root_certificates
    - Self::dangerous
    - fail
    - rustls::ClientConfig::builder
    - Arc::new
    - Err
    - unwrap_or
    - rustls::Error::from
    - rustls::client::WebPkiServerVerifier::builder
    - map_err
    - rustls_native_certs::load_native_certs
    - into
    - RootCertStore::empty
    - build
    - RedisError::from
    - rustls::OtherError
    - to_string
    - bool::extend
    - Ok
    - RedisResult::map_err
    - cloned
    - set_certificate_verifier
    - bool::add
    - clone
    - with_no_client_auth
    - pop
    - rustls::crypto::CryptoProvider::get_default
    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:1245,1
    - Dst: RedisFuture::arg
      Src: /src/redis-rs/redis/src/connection.rs:1248,1
    - Dst: RedisFuture::arg
      Src: /src/redis-rs/redis/src/connection.rs:1251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - username
    - password
    argTypes:
    - Option<&str>
    - '&str'
    constantsTouched: []
    func_position:
      end: 1253
      start: 1244
    functionDepth: 2
    functionLinenumber: 1244
    functionLinenumberEnd: 1253
    functionName: authenticate_cmd
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - RedisFuture::arg
    - cmd::cmd
    linkageType: ''
    returnType: Cmd
    signature: 'pub(crate) fn authenticate_cmd(username: Option<&str>, password: &str)
      -> Cmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/connection.rs:1259,1
    - Dst: ActualConnection::new
      Src: /src/redis-rs/redis/src/connection.rs:1260,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/connection.rs:1267,1
    - Dst: checked_sub
      Src: /src/redis-rs/redis/src/connection.rs:1267,1
    - Dst: elapsed
      Src: /src/redis-rs/redis/src/connection.rs:1267,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/connection.rs:1269,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/connection.rs:1269,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1270,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/connection.rs:1270,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/src/connection.rs:1270,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1275,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1276,1
    - Dst: setup_connection
      Src: /src/redis-rs/redis/src/connection.rs:1278,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1286,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1287,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1289,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - connection_info
    - timeout
    argTypes:
    - '&ConnectionInfo'
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 1290
      start: 1255
    functionDepth: 35
    functionLinenumber: 1255
    functionLinenumberEnd: 1290
    functionName: connect
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 7
    functionsReached:
    - set_write_timeout
    - Err
    - std::io::Error::new
    - set_read_timeout
    - and_then
    - RedisError::from
    - is_some
    - ActualConnection::new
    - setup_connection
    - elapsed
    - checked_sub
    - Instant::now
    - is_none
    - Ok
    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:1305,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/src/connection.rs:1307,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/connection.rs:1308,1
    - Dst: commands::resp3_hello
      Src: /src/redis-rs/redis/src/connection.rs:1308,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1309,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/connection.rs:1310,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/connection.rs:1311,1
    - Dst: authenticate_cmd
      Src: /src/redis-rs/redis/src/connection.rs:1311,1
    - Dst: bool::then
      Src: /src/redis-rs/redis/src/connection.rs:1312,1
    - Dst: redis::ConnectionInfo::username
      Src: /src/redis-rs/redis/src/connection.rs:1312,1
    - Dst: flatten
      Src: /src/redis-rs/redis/src/connection.rs:1312,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1315,1
    - Dst: then
      Src: /src/redis-rs/redis/src/connection.rs:1320,1
    - Dst: len
      Src: /src/redis-rs/redis/src/connection.rs:1321,1
    - Dst: inspect
      Src: /src/redis-rs/redis/src/connection.rs:1320,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1323,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1323,1
    - Dst: impl Future::map
      Src: /src/redis-rs/redis/src/connection.rs:1327,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1328,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1328,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/connection.rs:1328,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/connection.rs:1332,1
    - Dst: len
      Src: /src/redis-rs/redis/src/connection.rs:1335,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1341,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1341,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/connection.rs:1341,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/connection.rs:1341,1
    - Dst: ignore
      Src: /src/redis-rs/redis/src/connection.rs:1341,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1347,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1347,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/connection.rs:1347,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/connection.rs:1347,1
    - Dst: ignore
      Src: /src/redis-rs/redis/src/connection.rs:1347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 93
    argCount: 3
    argNames:
    - connection_info
    - check_username
    - cache_config
    argTypes:
    - '&RedisConnectionInfo'
    - bool
    - Option<crate::caching::CacheConfig>
    constantsTouched: []
    func_position:
      end: 1365
      start: 1300
    functionDepth: 34
    functionLinenumber: 1300
    functionLinenumberEnd: 1365
    functionName: connection_setup_pipeline
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - then
    - supports_resp3
    - as_ref
    - inspect
    - Cmd::arg
    - commands::resp3_hello
    - impl Future::map
    - authenticate_cmd
    - arg
    - flatten
    - bool::then
    - redis::ConnectionInfo::username
    - ignore
    - cmd::pipe
    - cmd::cmd
    - add_command
    - '&mut Cmd::arg'
    - Some
    - len
    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:1369,1
    - Dst: get_resp3_hello_command_error
      Src: /src/redis-rs/redis/src/connection.rs:1369,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:1369,1
    - Dst: Self::into
      Src: /src/redis-rs/redis/src/connection.rs:1369,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - result
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1372
      start: 1367
    functionDepth: 37
    functionLinenumber: 1367
    functionLinenumberEnd: 1372
    functionName: check_resp3_auth
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Err
    - clone
    - Self::into
    - get_resp3_hello_command_error
    - Ok
    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:1383,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1387,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1388,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1387,1
    - Dst: details
      Src: /src/redis-rs/redis/src/connection.rs:1395,1
    - Dst: Option::ok_or
      Src: /src/redis-rs/redis/src/connection.rs:1395,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/connection.rs:1399,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1400,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1400,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - result
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1407
      start: 1380
    functionDepth: 1
    functionLinenumber: 1380
    functionLinenumberEnd: 1407
    functionName: check_resp2_auth
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - details
    - Err
    - into
    - contains
    - Option::ok_or
    - Ok
    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:1411,1
    - Dst: details
      Src: /src/redis-rs/redis/src/connection.rs:1414,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1415,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1416,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:1418,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1415,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1421,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1422,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1427
      start: 1409
    functionDepth: 1
    functionLinenumber: 1409
    functionLinenumberEnd: 1427
    functionName: check_db_select
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - details
    - Err
    - into
    - to_string
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'fn check_db_select(value: &Value) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1432,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1433,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1434,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - result
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1440
      start: 1430
    functionDepth: 0
    functionLinenumber: 1430
    functionLinenumberEnd: 1440
    functionName: check_caching
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'fn check_caching(result: &Value) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/src/connection.rs:1456,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1457,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1457,1
    - Dst: check_resp3_auth
      Src: /src/redis-rs/redis/src/connection.rs:1459,1
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/src/connection.rs:1461,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1462,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1462,1
    - Dst: check_resp2_auth
      Src: /src/redis-rs/redis/src/connection.rs:1464,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1465,1
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/src/connection.rs:1470,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1471,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1471,1
    - Dst: check_db_select
      Src: /src/redis-rs/redis/src/connection.rs:1473,1
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/src/connection.rs:1478,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1479,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1479,1
    - Dst: check_caching
      Src: /src/redis-rs/redis/src/connection.rs:1481,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1484,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 58
    argCount: 2
    argNames:
    - results
    argTypes:
    - Vec<Value>
    - ConnectionSetupComponents
    constantsTouched: []
    func_position:
      end: 1485
      start: 1442
    functionDepth: 47
    functionLinenumber: 1442
    functionLinenumberEnd: 1485
    functionName: check_connection_setup
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - check_resp2_auth
    - into
    - Err
    - check_resp3_auth
    - check_caching
    - RedisResult::get
    - check_db_select
    - Ok
    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: 34
    functionLinenumber: 100
    functionLinenumberEnd: 122
    functionName: execute_connection_pipeline
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 0
    functionsReached:
    - ok_or_else
    - '&mut T::send'
    - len
    - get_packed_pipeline
    - connection::check_connection_setup
    - '&mut T::next'
    - Vec::with_capacity
    - Ok
    - RedisResult::push
    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: 35
    functionLinenumber: 124
    functionLinenumberEnd: 159
    functionName: setup_connection
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 1
    functionsReached:
    - Ok
    - connection_setup_pipeline
    - execute_connection_pipeline
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(super) async fn setup_connection<T>(codec: &mut T,connection_info:
      &RedisConnectionInfo,#[cfg(feature = "cache-aio")] cache_config: Option<crate::caching::CacheConfig>,)
      -> RedisResult<()>whereT: Sink<Vec<u8>, Error = RedisError>,T: Stream<Item =
      RedisResult<Value>>,T: Unpin + Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:1571,1
    - Dst: ConnectionLike::req_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 1573
      start: 1570
    functionDepth: 46
    functionLinenumber: 1570
    functionLinenumberEnd: 1573
    functionName: ConnectionLike::req_command
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 2
    functionsReached:
    - Cmd::get_packed_command
    - ConnectionLike::req_packed_command
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_command(&mut self, cmd: &Cmd) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1583
    functionDepth: 0
    functionLinenumber: 1583
    functionLinenumberEnd: 1585
    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:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 213
    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:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 225
    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:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 217
    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:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 221
    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:1646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1642
    functionDepth: 1
    functionLinenumber: 1642
    functionLinenumberEnd: 1647
    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:1650,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/connection.rs:1651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1659
    functionName: Connection::exit_pubsub
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - is_ok
    - Connection::clear_active_subscriptions
    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:1673,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:1673,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1674,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:1674,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1677,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1678,1
    - Dst: Connection::recv_response
      Src: /src/redis-rs/redis/src/connection.rs:1690,1
    - Dst: len
      Src: /src/redis-rs/redis/src/connection.rs:1694,1
    - Dst: resp3_is_pub_sub_state_cleared
      Src: /src/redis-rs/redis/src/connection.rs:1696,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/connection.rs:1710,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1710,1
    - Dst: no_sub_err_is_pub_sub_state_cleared
      Src: /src/redis-rs/redis/src/connection.rs:1711,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1722,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1722,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/connection.rs:1725,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/connection.rs:1725,1
    - Dst: resp2_is_pub_sub_state_cleared
      Src: /src/redis-rs/redis/src/connection.rs:1726,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1736,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1736,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1748,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1665
    functionDepth: 46
    functionLinenumber: 1665
    functionLinenumberEnd: 1749
    functionName: Connection::clear_active_subscriptions
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - Err
    - into
    - Connection::recv_response
    - Some
    - resp2_is_pub_sub_state_cleared
    - resp3_is_pub_sub_state_cleared
    - no_sub_err_is_pub_sub_state_cleared
    - from_redis_value
    - Ok
    - Cmd::get_packed_command
    - cmd::cmd
    - Value::Array
    - Connection::send_bytes
    - len
    - kind
    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:1753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - push
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 1755
      start: 1751
    functionDepth: 1
    functionLinenumber: 1751
    functionLinenumberEnd: 1755
    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:1759,1
    - Dst: PushKind::clone
      Src: /src/redis-rs/redis/src/connection.rs:1760,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:1761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&RedisResult<Value>'
    constantsTouched: []
    func_position:
      end: 1764
      start: 1757
    functionDepth: 37
    functionLinenumber: 1757
    functionLinenumberEnd: 1764
    functionName: Connection::try_send
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Connection::send_push
    - PushKind::clone
    - clone
    linkageType: ''
    returnType: void
    signature: 'fn try_send(&self, value: &RedisResult<Value>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Connection::send_push
      Src: /src/redis-rs/redis/src/connection.rs:1767,1
    - Dst: PushInfo::disconnect
      Src: /src/redis-rs/redis/src/connection.rs:1767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1766
    functionDepth: 2
    functionLinenumber: 1766
    functionLinenumberEnd: 1768
    functionName: Connection::send_disconnect
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - PushInfo::disconnect
    - Connection::send_push
    linkageType: ''
    returnType: void
    signature: fn send_disconnect(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Connection::send_disconnect
      Src: /src/redis-rs/redis/src/connection.rs:1772,1
    - Dst: shutdown
      Src: /src/redis-rs/redis/src/connection.rs:1775,1
    - Dst: shutdown
      Src: /src/redis-rs/redis/src/connection.rs:1780,1
    - Dst: get_mut
      Src: /src/redis-rs/redis/src/connection.rs:1785,1
    - Dst: shutdown
      Src: /src/redis-rs/redis/src/connection.rs:1785,1
    - Dst: shutdown
      Src: /src/redis-rs/redis/src/connection.rs:1790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1770
    functionDepth: 3
    functionLinenumber: 1770
    functionLinenumberEnd: 1794
    functionName: Connection::close_connection
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Connection::send_disconnect
    - get_mut
    - shutdown
    linkageType: ''
    returnType: void
    signature: fn close_connection(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_value
      Src: /src/redis-rs/redis/src/connection.rs:1802,1
    - Dst: parse_value
      Src: /src/redis-rs/redis/src/connection.rs:1807,1
    - Dst: parse_value
      Src: /src/redis-rs/redis/src/connection.rs:1812,1
    - Dst: parse_value
      Src: /src/redis-rs/redis/src/connection.rs:1816,1
    - Dst: Connection::try_send
      Src: /src/redis-rs/redis/src/connection.rs:1819,1
    - Dst: as_io_error
      Src: /src/redis-rs/redis/src/connection.rs:1828,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/connection.rs:1836,1
    - Dst: Connection::close_connection
      Src: /src/redis-rs/redis/src/connection.rs:1837,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 60
    argCount: 1
    argNames:
    - is_response
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1844
      start: 1798
    functionDepth: 38
    functionLinenumber: 1798
    functionLinenumberEnd: 1844
    functionName: Connection::read
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Connection::try_send
    - as_io_error
    - parse_value
    - Connection::close_connection
    - kind
    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:1848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sender
    argTypes:
    - SyncPushSender
    constantsTouched: []
    func_position:
      end: 1849
      start: 1847
    functionDepth: 0
    functionLinenumber: 1847
    functionLinenumberEnd: 1849
    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:1852,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1853,1
    - Dst: RedisError::make_empty_command
      Src: /src/redis-rs/redis/src/connection.rs:1853,1
    - Dst: send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1855,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/src/connection.rs:1856,1
    - Dst: PathBuf::is_connection_dropped
      Src: /src/redis-rs/redis/src/connection.rs:1858,1
    - Dst: Connection::send_disconnect
      Src: /src/redis-rs/redis/src/connection.rs:1859,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1864
      start: 1851
    functionDepth: 3
    functionLinenumber: 1851
    functionLinenumberEnd: 1864
    functionName: Connection::send_bytes
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - Err
    - Vec::is_empty
    - RedisError::make_empty_command
    - supports_resp3
    - send_bytes
    - PathBuf::is_connection_dropped
    - 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:1870,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1871,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1871,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/connection.rs:1871,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/src/connection.rs:1871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - channel
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1875
      start: 1869
    functionDepth: 32
    functionLinenumber: 1869
    functionLinenumberEnd: 1875
    functionName: Connection::subscribe_resp3
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - '&mut Cmd::exec'
    - '&mut Cmd::set_no_response'
    - Cmd::arg
    - check_resp3
    - cmd::cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn subscribe_resp3<T: ToRedisArgs>(&mut self, channel: T) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/connection.rs:1881,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1882,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1882,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/connection.rs:1882,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/src/connection.rs:1882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pchannel
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1886
      start: 1880
    functionDepth: 32
    functionLinenumber: 1880
    functionLinenumberEnd: 1886
    functionName: Connection::psubscribe_resp3
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - '&mut Cmd::exec'
    - '&mut Cmd::set_no_response'
    - Cmd::arg
    - check_resp3
    - cmd::cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn psubscribe_resp3<T: ToRedisArgs>(&mut self, pchannel: T) ->
      RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/connection.rs:1892,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1893,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1893,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/connection.rs:1893,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/src/connection.rs:1893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - channel
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1897
      start: 1891
    functionDepth: 32
    functionLinenumber: 1891
    functionLinenumberEnd: 1897
    functionName: Connection::unsubscribe_resp3
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - '&mut Cmd::exec'
    - '&mut Cmd::set_no_response'
    - Cmd::arg
    - check_resp3
    - cmd::cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn unsubscribe_resp3<T: ToRedisArgs>(&mut self, channel: T) ->
      RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/connection.rs:1903,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1904,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1904,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/connection.rs:1904,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/src/connection.rs:1904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pchannel
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1908
      start: 1902
    functionDepth: 32
    functionLinenumber: 1902
    functionLinenumberEnd: 1908
    functionName: Connection::punsubscribe_resp3
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - '&mut Cmd::exec'
    - '&mut Cmd::set_no_response'
    - Cmd::arg
    - check_resp3
    - cmd::cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn punsubscribe_resp3<T: ToRedisArgs>(&mut self, pchannel: T)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:1914,1
    - Dst: Connection::exit_pubsub
      Src: /src/redis-rs/redis/src/connection.rs:1916,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1919,1
    - Dst: Cmd::is_no_response
      Src: /src/redis-rs/redis/src/connection.rs:1920,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1921,1
    - Dst: Connection::read
      Src: /src/redis-rs/redis/src/connection.rs:1924,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1929,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 1932
      start: 1913
    functionDepth: 46
    functionLinenumber: 1913
    functionLinenumberEnd: 1932
    functionName: Connection::req_command
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Cmd::is_no_response
    - Cmd::get_packed_command
    - Connection::read
    - Connection::send_bytes
    - Connection::exit_pubsub
    - Ok
    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:1935,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1938,1
    - Dst: Connection::read
      Src: /src/redis-rs/redis/src/connection.rs:1940,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1945,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1948
      start: 1933
    functionDepth: 48
    functionLinenumber: 1933
    functionLinenumberEnd: 1948
    functionName: Connection::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Connection::read
    - Connection::send_bytes
    - Connection::exit_pubsub
    - Ok
    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:1957,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1959,1
    - Dst: Connection::read
      Src: /src/redis-rs/redis/src/connection.rs:1970,1
    - Dst: push
      Src: /src/redis-rs/redis/src/connection.rs:1974,1
    - Dst: push
      Src: /src/redis-rs/redis/src/connection.rs:1976,1
    - Dst: Value::ServerError
      Src: /src/redis-rs/redis/src/connection.rs:1976,1
    - Dst: push
      Src: /src/redis-rs/redis/src/connection.rs:1989,1
    - Dst: None::is_none
      Src: /src/redis-rs/redis/src/connection.rs:1993,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1994,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/connection.rs:2001,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:2002,1
    - Dst: RedisError::make_aborted_transaction
      Src: /src/redis-rs/redis/src/connection.rs:2002,1
    - Dst: None::map_or
      Src: /src/redis-rs/redis/src/connection.rs:2005,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2005,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 60
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&[u8]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 2006
      start: 1950
    functionDepth: 48
    functionLinenumber: 1950
    functionLinenumberEnd: 2006
    functionName: Connection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Err
    - RedisError::make_aborted_transaction
    - Value::ServerError
    - Connection::send_bytes
    - Some
    - None::map_or
    - push
    - None::is_none
    - is_empty
    - Connection::read
    - Connection::exit_pubsub
    - Ok
    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: 2010
      start: 2008
    functionDepth: 0
    functionLinenumber: 2008
    functionLinenumberEnd: 2010
    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:2013,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/src/connection.rs:2013,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/connection.rs:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2012
    functionDepth: 2
    functionLinenumber: 2012
    functionLinenumberEnd: 2014
    functionName: Connection::check_connection
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - is_ok
    - query::<String>
    - cmd::cmd
    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:2017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 2016
    functionDepth: 1
    functionLinenumber: 2016
    functionLinenumberEnd: 2018
    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:2027,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 2028
      start: 2026
    functionDepth: 47
    functionLinenumber: 2026
    functionLinenumberEnd: 2028
    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:2036,1
    - Dst: req_packed_commands
      Src: /src/redis-rs/redis/src/connection.rs:2036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&[u8]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 2037
      start: 2030
    functionDepth: 51
    functionLinenumber: 2030
    functionLinenumberEnd: 2037
    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:2040,1
    - Dst: req_command
      Src: /src/redis-rs/redis/src/connection.rs:2040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 2041
      start: 2039
    functionDepth: 47
    functionLinenumber: 2039
    functionLinenumberEnd: 2041
    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:2044,1
    - Dst: '&Self::Target::get_db'
      Src: /src/redis-rs/redis/src/connection.rs:2044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 2043
    functionDepth: 1
    functionLinenumber: 2043
    functionLinenumberEnd: 2045
    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:2048,1
    - Dst: '&Self::Target::supports_pipelining'
      Src: /src/redis-rs/redis/src/connection.rs:2048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2049
      start: 2047
    functionDepth: 1
    functionLinenumber: 2047
    functionLinenumberEnd: 2049
    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:2052,1
    - Dst: check_connection
      Src: /src/redis-rs/redis/src/connection.rs:2052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2051
    functionDepth: 1
    functionLinenumber: 2051
    functionLinenumberEnd: 2053
    functionName: T::check_connection
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - check_connection
    - T::deref_mut
    linkageType: ''
    returnType: bool
    signature: fn check_connection(&mut self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::deref
      Src: /src/redis-rs/redis/src/connection.rs:2056,1
    - Dst: '&Self::Target::is_open'
      Src: /src/redis-rs/redis/src/connection.rs:2056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2055
    functionDepth: 1
    functionLinenumber: 2055
    functionLinenumberEnd: 2057
    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: 46
    functionLinenumber: 384
    functionLinenumberEnd: 406
    functionName: PubSub::new
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 2
    functionsReached:
    - super::setup_connection
    - tokio::sync::mpsc::unbounded_channel
    - ValueCodec::default
    - SharedHandleContainer::new
    - Some
    - PubSubSink::new
    - Runtime::locate
    - Self::spawn
    - Self::framed
    - Ok
    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:2094,1
    - Dst: Cmd::set_no_response
      Src: /src/redis-rs/redis/src/connection.rs:2095,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2097,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2097,1
    - Dst: recv_response
      Src: /src/redis-rs/redis/src/connection.rs:2100,1
    - Dst: Msg::from_value
      Src: /src/redis-rs/redis/src/connection.rs:2101,1
    - Dst: push_back
      Src: /src/redis-rs/redis/src/connection.rs:2102,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - cmd
    - is_sub_unsub
    argTypes:
    - '&mut Cmd'
    - bool
    constantsTouched: []
    func_position:
      end: 2107
      start: 2089
    functionDepth: 46
    functionLinenumber: 2089
    functionLinenumberEnd: 2107
    functionName: PubSub::cache_messages_until_received_response
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - push_back
    - send_packed_command
    - recv_response
    - Msg::from_value
    - Cmd::set_no_response
    - supports_resp3
    - Cmd::get_packed_command
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'fn cache_messages_until_received_response(&mut self,cmd: &mut Cmd,is_sub_unsub:
      bool,) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 423
      start: 421
    functionDepth: 47
    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: 47
    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: 47
    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:2153,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2154,1
    - Dst: Msg::from_owned_value
      Src: /src/redis-rs/redis/src/connection.rs:2157,1
    - Dst: read
      Src: /src/redis-rs/redis/src/connection.rs:2157,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2152
    functionDepth: 45
    functionLinenumber: 2152
    functionLinenumberEnd: 2163
    functionName: PubSub::get_message
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 2
    functionsReached:
    - read
    - Msg::from_owned_value
    - pop_front
    - 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:2171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 2172
      start: 2170
    functionDepth: 1
    functionLinenumber: 2170
    functionLinenumberEnd: 2172
    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:2177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2176
    functionDepth: 48
    functionLinenumber: 2176
    functionLinenumberEnd: 2178
    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:2186,1
    - Dst: impl combine::Parser::clone
      Src: /src/redis-rs/redis/src/connection.rs:2186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2187
      start: 2185
    functionDepth: 1
    functionLinenumber: 2185
    functionLinenumberEnd: 2187
    functionName: Msg::from_value
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - impl combine::Parser::clone
    - Self::from_owned_value
    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:2196,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/connection.rs:2198,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/connection.rs:2198,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/connection.rs:2199,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/connection.rs:2200,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2200,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/connection.rs:2200,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2202,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2203,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:2205,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2205,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2206,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2207,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:2212,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 1
    argNames:
    - value
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2217
      start: 2190
    functionDepth: 45
    functionLinenumber: 2190
    functionLinenumberEnd: 2217
    functionName: Msg::from_owned_value
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - Some
    - next
    - from_redis_value
    - Result::ok
    - Self::from_push_info
    - into_iter
    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:2225,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2227,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2228,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:2230,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2230,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2231,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2232,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:2237,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 1
    argNames:
    - push_info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 2242
      start: 2220
    functionDepth: 2
    functionLinenumber: 2220
    functionLinenumberEnd: 2242
    functionName: Msg::from_push_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Some
    - next
    - into_iter
    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:2246,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/connection.rs:2246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2245
    functionDepth: 46
    functionLinenumber: 2245
    functionLinenumberEnd: 2247
    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:2255,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/connection.rs:2255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2253
    functionDepth: 0
    functionLinenumber: 2253
    functionLinenumberEnd: 2258
    functionName: Msg::get_channel_name
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - unwrap_or
    - std::str::from_utf8
    linkageType: ''
    returnType: '&str'
    signature: pub fn get_channel_name(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2262,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/connection.rs:2262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2261
    functionDepth: 46
    functionLinenumber: 2261
    functionLinenumberEnd: 2263
    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: 2273
      start: 2268
    functionDepth: 0
    functionLinenumber: 2268
    functionLinenumberEnd: 2273
    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:2279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2278
    functionDepth: 0
    functionLinenumber: 2278
    functionLinenumberEnd: 2280
    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:2287,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/connection.rs:2288,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/connection.rs:2289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2291
      start: 2286
    functionDepth: 46
    functionLinenumber: 2286
    functionLinenumberEnd: 2291
    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:2338,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:2338,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/src/connection.rs:2338,1
    - Dst: cmd::pipe
      Src: /src/redis-rs/redis/src/connection.rs:2339,1
    - Dst: func
      Src: /src/redis-rs/redis/src/connection.rs:2340,1
    - Dst: atomic
      Src: /src/redis-rs/redis/src/connection.rs:2340,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:2348,1
    - Dst: Cmd::exec
      Src: /src/redis-rs/redis/src/connection.rs:2348,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - con
    - keys
    - func
    argTypes:
    - '&mut C'
    - '&[K]'
    - F
    constantsTouched: []
    func_position:
      end: 2353
      start: 2326
    functionDepth: 32
    functionLinenumber: 2326
    functionLinenumberEnd: 2353
    functionName: transaction
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 3
    functionsReached:
    - '&mut Cmd::exec'
    - Cmd::exec
    - Ok
    - atomic
    - Cmd::arg
    - cmd::pipe
    - func
    - cmd::cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn transaction<C: ConnectionLike,K: ToRedisArgs,T,F: FnMut(&mut
      C, &mut Pipeline) -> RedisResult<Option<T>>,>(con: &mut C,keys: &[K],func: F,)
      -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PushKind::first
      Src: /src/redis-rs/redis/src/connection.rs:2363,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: 2369
      start: 2357
    functionDepth: 0
    functionLinenumber: 2357
    functionLinenumberEnd: 2369
    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: 2384
      start: 2372
    functionDepth: 0
    functionLinenumber: 2372
    functionLinenumberEnd: 2384
    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:2391,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/connection.rs:2393,1
    - Dst: Option::starts_with
      Src: /src/redis-rs/redis/src/connection.rs:2394,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/connection.rs:2393,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/connection.rs:2397,1
    - Dst: Option::starts_with
      Src: /src/redis-rs/redis/src/connection.rs:2398,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/connection.rs:2397,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: 2401
      start: 2386
    functionDepth: 43
    functionLinenumber: 2386
    functionLinenumberEnd: 2401
    functionName: no_sub_err_is_pub_sub_state_cleared
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - details
    - Option::map
    - unwrap_or_default
    - Option::starts_with
    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:2405,1
    - Dst: Option::starts_with
      Src: /src/redis-rs/redis/src/connection.rs:2406,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:2407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - err
    argTypes:
    - RedisError
    constantsTouched: []
    func_position:
      end: 2415
      start: 2404
    functionDepth: 1
    functionLinenumber: 2404
    functionLinenumberEnd: 2415
    functionName: get_resp3_hello_command_error
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - into
    - Option::starts_with
    - detail
    linkageType: ''
    returnType: RedisError
    signature: 'pub fn get_resp3_hello_command_error(err: RedisError) -> RedisError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/connection.rs:2438,1
    - Dst: parse_redis_url
      Src: /src/redis-rs/redis/src/connection.rs:2439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2446
      start: 2422
    functionDepth: 1
    functionLinenumber: 2422
    functionLinenumberEnd: 2446
    functionName: tests::test_parse_redis_url
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - parse_redis_url
    - into_iter
    linkageType: ''
    returnType: void
    signature: fn test_parse_redis_url()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/connection.rs:2500,1
    - Dst: url_to_tcp_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:2501,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/src/connection.rs:2501,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/connection.rs:2501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2449
    functionDepth: 47
    functionLinenumber: 2449
    functionLinenumberEnd: 2516
    functionName: tests::test_url_to_tcp_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - url_to_tcp_connection_info
    - RedisResult::unwrap
    - String::clone
    - into_iter
    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:2547,1
    - Dst: url_to_tcp_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:2548,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/src/connection.rs:2548,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:2550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2554
      start: 2519
    functionDepth: 47
    functionLinenumber: 2519
    functionLinenumberEnd: 2554
    functionName: tests::test_url_to_tcp_connection_info_failed
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - to_string
    - RedisResult::unwrap_err
    - url_to_tcp_connection_info
    - into_iter
    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:2629,1
    - Dst: url_to_unix_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:2635,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/src/connection.rs:2635,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/connection.rs:2635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2650
      start: 2558
    functionDepth: 37
    functionLinenumber: 2558
    functionLinenumberEnd: 2650
    functionName: tests::test_url_to_unix_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - url_to_unix_connection_info
    - RedisResult::unwrap
    - String::clone
    - into_iter
    linkageType: ''
    returnType: void
    signature: fn test_url_to_unix_connection_info()
  - 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: 1
    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: 45
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: Script::new
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 10
    functionsReached:
    - Option::as_bytes
    - update
    - Option::to_string
    - Sha1::new
    - String::to_string
    - 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: 33
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Script::load_cmd
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - cmd
    - as_bytes
    - Cmd::arg
    linkageType: ''
    returnType: Cmd
    signature: pub(crate) fn load_cmd(&self) -> Cmd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Script::load_cmd
      Src: /src/redis-rs/redis/src/script.rs:59,1
    - Dst: Cmd::query
      Src: /src/redis-rs/redis/src/script.rs:59,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/script.rs:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 34
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: Script::load
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - Script::load_cmd
    - Ok
    - Cmd::query
    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: 34
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: Script::load_async
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - Script::load_cmd
    - Cmd::query_async
    - Ok
    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: 31
    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: 31
    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: 48
    functionLinenumber: 177
    functionLinenumberEnd: 190
    functionName: ScriptInvocation::invoke
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - Err
    - ScriptInvocation::eval_cmd
    - ErrorKind::Server
    - ScriptInvocation::load
    - Cmd::query
    - Ok
    - kind
    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: 45
    functionLinenumber: 195
    functionLinenumberEnd: 215
    functionName: ScriptInvocation::invoke_async
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 3
    functionsReached:
    - Err
    - ScriptInvocation::eval_cmd
    - Cmd::query_async
    - ErrorKind::Server
    - ScriptInvocation::load_async
    - Ok
    - kind
    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: 47
    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: 35
    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: 47
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: ScriptInvocation::estimate_buflen
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - chain
    - iter
    - fold
    - PathBuf::len
    - 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: 34
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: ScriptInvocation::eval_cmd
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 2
    functionsReached:
    - '&mut Cmd::arg'
    - as_bytes
    - Cmd::with_capacity
    - arg
    - Cmd::arg
    - ScriptInvocation::estimate_buflen
    - len
    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: 46
    functionLinenumber: 262
    functionLinenumberEnd: 273
    functionName: tests::script_eval_should_work
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - estimate_buflen
    - key
    - Script::new
    - eval_cmd
    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: 25
    functionsReached:
    - io::Error::from
    - Self::into
    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
    - len
    - fmt::Debug::fmt
    - std::fmt
    - Option::fmt
    - Ok
    - write_str
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> Result<(), fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs: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: 43
    functionLinenumber: 243
    functionLinenumberEnd: 258
    functionName: RedisError::kind
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 1
    functionsReached:
    - first
    - and_then
    - map
    - ErrorKind::Server
    - unwrap_or
    - PushKind::into
    - kind
    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: 43
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: RedisError::detail
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - details
    - Option::as_str
    - Option::as_ref
    - Some
    - map
    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: 44
    functionLinenumber: 271
    functionLinenumberEnd: 279
    functionName: RedisError::code
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - Some
    - PushKind::code
    - RedisError::kind
    - 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: 44
    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: 44
    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:
    - Option::is_some_and
    - RedisError::as_io_error
    - kind
    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: 44
    functionLinenumber: 408
    functionLinenumberEnd: 419
    functionName: RedisError::redirect_node
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - Some
    - ok
    - next
    - RedisError::detail
    - split_ascii_whitespace
    - parse
    linkageType: ''
    returnType: Option
    signature: pub fn redirect_node(&self) -> Option<(&str, u16)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:428,1
    - Dst: Value::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: 44
    functionLinenumber: 427
    functionLinenumberEnd: 462
    functionName: RedisError::retry_method
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 1
    functionsReached:
    - Option::map
    - unwrap_or
    - RedisError::as_io_error
    - Value::retry_method
    - RedisError::kind
    - kind
    - RedisError::is_connection_dropped
    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:
    - Arc::from
    - Some
    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:
    - Arc::from
    - ErrorRepr::Pipeline
    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: 43
    functionLinenumber: 509
    functionLinenumberEnd: 516
    functionName: make_extension_error
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - Option::map
    - Option::into
    - '{

      ParsingError,

      errors::server_error::ServerError'
    - ErrorRepr::Server
    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: 0
    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: 47
    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
    - RedisResult::unwrap
    - redirect_node
    - unwrap_err
    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: 45
    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: 43
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: ServerError::details
    functionSourceFile: /src/redis-rs/redis/src/errors/server_error.rs
    functionUses: 0
    functionsReached:
    - as_str
    - Option::as_ref
    - map
    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:
    - Ok
    - Option::fmt
    - fmt::Debug::fmt
    - write_str
    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:
    - io::Error::from
    - RedisError::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: 2
    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
    - TcpStream::set_nodelay
    - set_tcp_keepalive
    - set_tcp_user_timeout
    - TcpStream::into
    - Ok
    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:75,1
    - Dst: ErrorOrErrors::Errors
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:76,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - expectation
    argTypes:
    - Option<PipelineResponseExpectation>
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 45
    functionLinenumber: 72
    functionLinenumberEnd: 81
    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:111,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:111,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Pipeline::fmt
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - debug_tuple
    - finish
    - 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:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - push_sender
    - info
    argTypes:
    - '&Option<Arc<dyn AsyncPushSender>>'
    - PushInfo
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    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:145,1
    - Dst: PushInfo::disconnect
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - push_sender
    argTypes:
    - '&Option<Arc<dyn AsyncPushSender>>'
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: send_disconnect
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 2
    functionsReached:
    - PushInfo::disconnect
    - send_push
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn send_disconnect(push_sender: &Option<Arc<dyn AsyncPushSender>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VecDeque::new
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sink_stream
    - sender
    argTypes:
    - T
    - UnboundedSender<Msg>
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 45
    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:
    - Err
    - is_closed
    - PipelineSink::as_mut
    - Poll::Ready
    - handle_message
    - 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:191,1
    - Dst: PushKind::has_reply
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:194,1
    - Dst: Self::handle_push_value
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:197,1
    - Dst: send_push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:199,1
    - Dst: PushKind::has_reply
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:204,1
    - Dst: send_push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:205,1
    - Dst: PushKind::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:208,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:209,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:212,1
    - Dst: pop_front
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:217,1
    - Dst: take
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:224,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:225,1
    - Dst: push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:247,1
    - Dst: ErrorOrErrors::FirstError
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:249,1
    - Dst: push_front
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:256,1
    - Dst: push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:262,1
    - Dst: ErrorOrErrors::FirstError
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:266,1
    - Dst: len
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:271,1
    - Dst: push_front
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:273,1
    - Dst: std::mem::replace
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:278,1
    - Dst: ErrorOrErrors::Errors
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:278,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:278,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:280,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:281,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:281,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:281,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:283,1
    - Dst: RedisError::make_aborted_transaction
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:283,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:286,1
    - Dst: take
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:292,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:293,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 126
    argCount: 2
    argNames:
    - result
    argTypes:
    - Pin<&mut Self>
    - RedisResult<Value>
    constantsTouched: []
    func_position:
      end: 297
      start: 190
    functionDepth: 37
    functionLinenumber: 190
    functionLinenumberEnd: 297
    functionName: PipelineSink::send_result
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - take
    - RedisError::make_aborted_transaction
    - std::mem::take
    - ErrorOrErrors::Errors
    - Value::Array
    - PushKind::has_reply
    - send
    - Err
    - std::mem::replace
    - ErrorOrErrors::FirstError
    - push_front
    - Self::handle_push_value
    - PipelineSink::project
    - send_push
    - push
    - PushKind::clone
    - Ok
    - pop_front
    - clone
    - Vec::new
    - is_empty
    - len
    linkageType: ''
    returnType: void
    signature: 'fn send_result(self: Pin<&mut Self>, result: RedisResult<Value>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PipelineSink::as_mut
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:178,1
    - Dst: project
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:178,1
    - Dst: poll_ready
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:178,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 183
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 183
    functionName: PipelineSink::poll_ready
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - map_err
    - PipelineSink::as_mut
    - project
    - poll_ready
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_ready(mut self: Pin<&mut Self>,cx: &mut task::Context,) ->
      Poll<Result<(), Self::Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PipelineSink::as_mut
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:189,1
    - Dst: project
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:189,1
    - Dst: start_send
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:191,1
    - Dst: push_back
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:193,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:194,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:197,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:197,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames: []
    argTypes:
    - Pin<&mut Self>
    - PipelineMessage
    constantsTouched: []
    func_position:
      end: 201
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 201
    functionName: PipelineSink::start_send
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - start_send
    - push_back
    - send
    - Err
    - PipelineSink::as_mut
    - project
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn start_send(mut self: Pin<&mut Self>,PipelineMessage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PipelineSink::poll_read
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 217
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 217
    functionName: PipelineSink::poll_flush
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - PipelineSink::poll_read
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_flush(mut self: Pin<&mut Self>,cx: &mut task::Context,) ->
      Poll<Result<(), Self::Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:225,1
    - Dst: PipelineSink::as_mut
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:228,1
    - Dst: project
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:228,1
    - Dst: is_closed
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:230,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:231,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:231,1
    - Dst: PipelineSink::handle_message
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:236,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:239,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 241
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 241
    functionName: PipelineSink::poll_close
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - PipelineSink::handle_message
    - is_closed
    - PipelineSink::as_mut
    - is_empty
    - Poll::Ready
    - project
    - Ok
    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:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - Option<usize>
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 401
    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:438,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:439,1
    - Dst: RedisError::make_empty_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:439,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:444,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:444,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:453,1
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:456,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:458,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:462,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:458,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:467,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:467,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:471,1
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:475,1
    - Dst: Self::timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:475,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:477,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:477,1
    - Dst: into
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:477,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:474,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:481,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: 482
      start: 429
    functionDepth: 47
    functionLinenumber: 429
    functionLinenumberEnd: 482
    functionName: Pipeline::send_recv
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Err
    - send
    - into
    - oneshot::channel
    - RedisError::make_empty_command
    - and_then
    - Some
    - unwrap_or_else
    - Runtime::locate
    - Self::timeout
    - map_err
    - Vec<u8>::is_empty
    - Ok
    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:529,1
    - Dst: cfg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:531,1
    - Dst: debug_struct
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:535,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:535,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:535,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:535,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:535,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 541
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 541
    functionName: MultiplexedConnection::fmt
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - field
    - cfg
    - finish
    - debug_struct
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_config
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:554,1
    - Dst: AsyncConnectionConfig::default
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - connection_info
    - stream
    argTypes:
    - '&RedisConnectionInfo'
    - C
    constantsTouched: []
    func_position:
      end: 555
      start: 547
    functionDepth: 42
    functionLinenumber: 547
    functionLinenumberEnd: 555
    functionName: MultiplexedConnection::new
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Self::new_with_config
    - AsyncConnectionConfig::default
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn new<C>(connection_info: &RedisConnectionInfo,stream:
      C,) -> RedisResult<(Self, impl Future<Output = ()>)>whereC: Unpin + AsyncRead
      + AsyncWrite + Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValueCodec::default
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:567,1
    - Dst: Self::framed
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:567,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:568,1
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:569,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:576,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:576,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:582,1
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:585,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:591,1
    - Dst: CacheManager::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:591,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:594,1
    - Dst: transpose
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:582,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:600,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:602,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:607,1
    - Dst: next
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:607,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:609,1
    - Dst: ArcStr::from
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:609,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:610,1
    - Dst: ArcStr::from
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:610,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:614,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:617,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:622,1
    - Dst: setup_connection
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:627,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:634,1
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:635,1
    - Dst: Pipeline::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:641,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:645,1
    - Dst: Pipeline::resolve_buffer_size
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:646,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:660,1
    - Dst: AtomicBool::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:660,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:666,1
    - Dst: Arc::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:667,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:668,1
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:670,1
    - Dst: Self::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:670,1
    - Dst: next
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:672,1
    - Dst: re_authenticate_with_credentials
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:675,1
    - Dst: Self::store
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:681,1
    - Dst: Self::load
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:693,1
    - Dst: Self::store
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:697,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:700,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:702,1
    - Dst: SharedHandleContainer::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:702,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:711,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 150
    argCount: 3
    argNames:
    - connection_info
    - stream
    - config
    argTypes:
    - '&RedisConnectionInfo'
    - C
    - AsyncConnectionConfig
    constantsTouched: []
    func_position:
      end: 712
      start: 559
    functionDepth: 47
    functionLinenumber: 559
    functionLinenumberEnd: 712
    functionName: MultiplexedConnection::new_with_config
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 1
    functionsReached:
    - Self::load
    - map
    - redis::ConnectionInfo::clone
    - as_ref
    - Arc::new
    - Self::framed
    - subscribe
    - Err
    - ValueCodec::default
    - SharedHandleContainer::new
    - Self::store
    - ArcStr::from
    - RedisError::from
    - is_some
    - next
    - Runtime::locate
    - Arc::clone
    - re_authenticate_with_credentials
    - Self::spawn
    - Ok
    - transpose
    - AtomicBool::new
    - Pipeline::resolve_buffer_size
    - Some
    - clone
    - setup_connection
    - Pipeline::new
    - check_resp3
    - CacheManager::new
    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:717,1
    - Dst: SharedHandleContainer::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TaskHandle
    constantsTouched: []
    func_position:
      end: 718
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 718
    functionName: MultiplexedConnection::set_task_handle
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - SharedHandleContainer::new
    - Some
    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:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - std::time::Duration
    constantsTouched: []
    func_position:
      end: 723
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 723
    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: load
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:729,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:730,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:730,1
    - Dst: Self::get_cached_cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:737,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:738,1
    - Dst: crate::Pipeline::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:740,1
    - Dst: pack_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:741,1
    - Dst: send_recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:743,1
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:746,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:747,1
    - Dst: len
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:749,1
    - Dst: Cmd::is_no_response
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:754,1
    - Dst: crate::types::from_redis_value
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:757,1
    - Dst: resolve
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:758,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:758,1
    - Dst: send_recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:763,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:765,1
    - Dst: Cmd::is_no_response
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:768,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 58
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 771
      start: 727
    functionDepth: 48
    functionLinenumber: 727
    functionLinenumberEnd: 771
    functionName: MultiplexedConnection::send_packed_command
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Err
    - into_iter
    - send_recv
    - RedisError::from
    - Cmd::is_no_response
    - Some
    - len
    - get_packed_pipeline
    - crate::types::from_redis_value
    - Cmd::get_packed_command
    - resolve
    - load
    - pack_command
    - crate::Pipeline::new
    - Ok
    - Self::get_cached_cmd
    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/multiplexed_connection.rs:783,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:784,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:784,1
    - Dst: Self::get_cached_pipeline
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:792,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:793,1
    - Dst: resolve
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:794,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:794,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:794,1
    - Dst: send_recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:796,1
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:799,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:800,1
    - Dst: resolve
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:811,1
    - Dst: send_recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:813,1
    - Dst: Cmd::get_packed_pipeline
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:816,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:817,1
    - Dst: Cmd::is_transaction
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:820,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:828,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:829,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 57
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 831
      start: 776
    functionDepth: 48
    functionLinenumber: 776
    functionLinenumberEnd: 831
    functionName: MultiplexedConnection::send_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Err
    - send_recv
    - RedisError::from
    - Cmd::is_transaction
    - Self::get_cached_pipeline
    - Some
    - Cmd::get_packed_pipeline
    - Vec::new
    - get_packed_pipeline
    - Ok
    - resolve
    - is_empty
    - Value::Array
    - load
    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:837,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:837,1
    - Dst: statistics
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 838
      start: 836
    functionDepth: 44
    functionLinenumber: 836
    functionLinenumberEnd: 838
    functionName: MultiplexedConnection::get_cache_statistics
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - map
    - statistics
    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:843,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 844
      start: 842
    functionDepth: 49
    functionLinenumber: 842
    functionLinenumberEnd: 844
    functionName: MultiplexedConnection::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - boxed
    - MultiplexedConnection::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: MultiplexedConnection::send_packed_commands
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:852,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&''a crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 853
      start: 846
    functionDepth: 49
    functionLinenumber: 846
    functionLinenumberEnd: 853
    functionName: MultiplexedConnection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - MultiplexedConnection::send_packed_commands
    - boxed
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn req_packed_commands<''a>(&''a mut self,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: 857
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 857
    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:878,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:879,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:880,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:881,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 883
      start: 877
    functionDepth: 37
    functionLinenumber: 877
    functionLinenumberEnd: 883
    functionName: MultiplexedConnection::subscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - Cmd::arg
    - check_resp3
    - cmd
    - Ok
    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:900,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:901,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:902,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:903,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 905
      start: 899
    functionDepth: 37
    functionLinenumber: 899
    functionLinenumberEnd: 905
    functionName: MultiplexedConnection::unsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - Cmd::arg
    - check_resp3
    - cmd
    - Ok
    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:926,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:927,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:928,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:929,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 931
      start: 925
    functionDepth: 37
    functionLinenumber: 925
    functionLinenumberEnd: 931
    functionName: MultiplexedConnection::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - Cmd::arg
    - check_resp3
    - cmd
    - Ok
    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:937,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:938,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:939,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:940,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 942
      start: 936
    functionDepth: 37
    functionLinenumber: 936
    functionLinenumberEnd: 942
    functionName: MultiplexedConnection::punsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - Cmd::arg
    - check_resp3
    - cmd
    - Ok
    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:956,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:956,1
    - Dst: MultiplexedConnection::send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:958,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:958,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:958,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - credentials
    argTypes:
    - '&crate::auth::BasicAuth'
    constantsTouched: []
    func_position:
      end: 962
      start: 951
    functionDepth: 49
    functionLinenumber: 951
    functionLinenumberEnd: 962
    functionName: MultiplexedConnection::re_authenticate_with_credentials
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - crate::connection::authenticate_cmd
    - Some
    - map
    - MultiplexedConnection::send_packed_command
    - extract_error
    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: 972
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 972
    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: 977
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 977
    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: 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:
    - Self
    - Some
    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: 5
    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: 46
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: SharedHandleContainer::new
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 3
    functionsReached:
    - Self
    - Arc::new
    - HandleContainer::new
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn new(handle: TaskHandle) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set
      Src: /src/redis-rs/redis/src/aio/runtime.rs:82,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/runtime.rs:82,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/aio/runtime.rs:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - Runtime
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 49
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: set_runtime
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 0
    functionsReached:
    - map_err
    - RedisError::from
    - set
    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: 50
    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: 50
    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: 48
    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: 35
    functionLinenumber: 150
    functionLinenumberEnd: 163
    functionName: Runtime::timeout
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 0
    functionsReached:
    - ok_or
    - Elapsed
    - F::timeout
    - tokio::time::timeout
    - map_err
    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: 49
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: Runtime::locate_and_sleep
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 0
    functionsReached:
    - Self::locate
    - Self::sleep
    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
    - is_some
    - finish
    - field
    - debug_struct
    - Self::is_some
    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: 47
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: ConnectionManagerConfig::new
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 8
    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: 46
    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:
    - std::sync::Arc::new
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_credentials_provider<P>(mut self, provider: P) -> SelfwhereP:
      crate::auth::StreamingCredentialsProvider + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 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:
    - field
    - finish
    - debug_struct
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 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: 47
    functionLinenumber: 378
    functionLinenumberEnd: 386
    functionName: reconnect_if_dropped
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Self::reconnect
    - Arc::downgrade
    - PathBuf::is_unrecoverable_error
    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: 52
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: reconnect_if_io_error
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Err
    - Self::reconnect
    - PathBuf::is_io_error
    - Arc::downgrade
    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:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - client
    argTypes:
    - Client
    constantsTouched: []
    func_position:
      end: 410
      start: 406
    functionDepth: 48
    functionLinenumber: 406
    functionLinenumberEnd: 410
    functionName: ConnectionManager::new
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 1
    functionsReached:
    - ConnectionManagerConfig::new
    - Self::new_with_config
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn new(client: Client) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:428,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:430,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:431,1
    - Dst: into
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:431,1
    - Dst: ExponentialBuilder::default
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:434,1
    - Dst: Self::with_factor
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:434,1
    - Dst: with_min_delay
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:434,1
    - Dst: with_max_times
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:434,1
    - Dst: with_jitter
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:434,1
    - Dst: with_max_delay
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:440,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:443,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:443,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:443,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:449,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:449,1
    - Dst: CacheManager::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:452,1
    - Dst: Self::as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:454,1
    - Dst: Self::set_cache_manager
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:455,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:455,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:460,1
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:463,1
    - Dst: HandleContainer::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:464,1
    - Dst: tokio::runtime::Runtime::spawn
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:465,1
    - Dst: Self::check_for_disconnect_pushes
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:465,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:469,1
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:470,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:475,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:476,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:476,1
    - Dst: Self::set_push_sender_internal
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:479,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:479,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:480,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:481,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:482,1
    - Dst: Self::set_push_sender_internal
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:485,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:485,1
    - Dst: Self::new_connection
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:489,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:491,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:491,1
    - Dst: SubscriptionTracker::default
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:491,1
    - Dst: Self
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:496,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:496,1
    - Dst: ArcSwap::from_pointee
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:498,1
    - Dst: future::ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:498,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:498,1
    - Dst: shared
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:498,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:509,1
    - Dst: Arc::downgrade
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:511,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:509,1
    - Dst: crate::RedisError::from
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:516,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:523,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 142
    argCount: 2
    argNames:
    - client
    - config
    argTypes:
    - Client
    - ConnectionManagerConfig
    constantsTouched: []
    func_position:
      end: 524
      start: 423
    functionDepth: 49
    functionLinenumber: 423
    functionLinenumberEnd: 524
    functionName: ConnectionManager::new_with_config
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 3
    functionsReached:
    - AsyncConnectionConfig::new
    - Self::clone
    - map
    - supports_resp3
    - as_ref
    - Arc::new
    - boxed
    - Self::with_factor
    - Err
    - send
    - Self::check_for_disconnect_pushes
    - with_max_times
    - Self::set_push_sender_internal
    - Self::set_cache_manager
    - Self::set_response_timeout
    - Self::new_connection
    - HandleContainer::new
    - with_jitter
    - map_err
    - with_min_delay
    - SubscriptionTracker::default
    - into
    - tokio::sync::mpsc::unbounded_channel
    - Mutex::new
    - Self::as_ref
    - shared
    - Runtime::locate
    - Self
    - is_none
    - ArcSwap::from_pointee
    - Ok
    - oneshot::channel
    - Arc::downgrade
    - crate::RedisError::from
    - Some
    - with_max_delay
    - Self::set_connection_timeout
    - clone
    - ExponentialBuilder::default
    - check_resp3
    - CacheManager::new
    - tokio::runtime::Runtime::spawn
    - future::ok
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn new_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:532,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:534,1
    - Dst: retry
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:538,1
    - Dst: sleep
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:538,1
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:540,1
    - Dst: Self::sleep
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:540,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:544,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:546,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: 547
      start: 526
    functionDepth: 41
    functionLinenumber: 526
    functionLinenumberEnd: 547
    functionName: ConnectionManager::new_connection
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Self::clone
    - Self::sleep
    - exec_async
    - Runtime::locate
    - Ok
    - get_multiplexed_async_connection_with_config
    - sleep
    - retry
    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:557,1
    - Dst: Weak<Internals>::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:560,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:562,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:564,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:566,1
    - Dst: clone_and_increase_epoch
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:567,1
    - Dst: set_cache_manager
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:568,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:572,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:573,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:573,1
    - Dst: Self::new_connection
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:581,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:588,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:570,1
    - Dst: shared
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:570,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:594,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:594,1
    - Dst: compare_and_swap
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:595,1
    - Dst: Arc::ptr_eq
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:600,1
    - Dst: spawn
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:602,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:602,1
    - Dst: detach
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:602,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: 604
      start: 553
    functionDepth: 41
    functionLinenumber: 553
    functionLinenumberEnd: 604
    functionName: ConnectionManager::reconnect
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Arc::ptr_eq
    - map
    - as_ref
    - boxed
    - Arc::new
    - detach
    - compare_and_swap
    - Weak<Internals>::clone
    - Self::new_connection
    - lock
    - set_cache_manager
    - shared
    - Weak<Internals>::upgrade
    - Ok
    - clone_and_increase_epoch
    - Some
    - clone
    - spawn
    - get_subscription_pipeline
    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:616,1
    - Dst: upgrade
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:618,1
    - Dst: Self::reconnect
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:621,1
    - Dst: Arc::downgrade
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:621,1
    - Dst: load
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:621,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:623,1
    - Dst: Self::send
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:624,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: 627
      start: 606
    functionDepth: 48
    functionLinenumber: 606
    functionLinenumberEnd: 627
    functionName: ConnectionManager::check_for_disconnect_pushes
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Self::reconnect
    - Self::send
    - Arc::downgrade
    - recv
    - as_ref
    - upgrade
    - load
    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:633,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:634,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:634,1
    - Dst: PathBuf::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:634,1
    - Dst: reconnect_if_io_error
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:635,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:636,1
    - Dst: reconnect_if_dropped
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 639
      start: 631
    functionDepth: 48
    functionLinenumber: 631
    functionLinenumberEnd: 639
    functionName: ConnectionManager::send_packed_command
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - reconnect_if_io_error
    - send_packed_command
    - clone
    - PathBuf::clone
    - map_err
    - load
    - 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:651,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:652,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:652,1
    - Dst: PathBuf::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:652,1
    - Dst: reconnect_if_io_error
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:653,1
    - Dst: send_packed_commands
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:654,1
    - Dst: reconnect_if_dropped
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:657,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 659
      start: 644
    functionDepth: 48
    functionLinenumber: 644
    functionLinenumberEnd: 659
    functionName: ConnectionManager::send_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - reconnect_if_io_error
    - clone
    - PathBuf::clone
    - send_packed_commands
    - map_err
    - 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:669,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:669,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:670,1
    - Dst: update_with_request
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - action
    - args
    argTypes:
    - SubscriptionAction
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 674
      start: 661
    functionDepth: 48
    functionLinenumber: 661
    functionLinenumberEnd: 674
    functionName: ConnectionManager::update_subscription_tracker
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - to_redis_args
    - lock
    - update_with_request
    - into_iter
    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:697,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:698,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:699,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:700,1
    - Dst: ConnectionManager::update_subscription_tracker
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:701,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 705
      start: 696
    functionDepth: 37
    functionLinenumber: 696
    functionLinenumberEnd: 705
    functionName: ConnectionManager::subscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - Cmd::arg
    - check_resp3
    - cmd
    - ConnectionManager::update_subscription_tracker
    - Ok
    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:711,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:712,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:713,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:714,1
    - Dst: ConnectionManager::update_subscription_tracker
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:715,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:717,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 718
      start: 710
    functionDepth: 37
    functionLinenumber: 710
    functionLinenumberEnd: 718
    functionName: ConnectionManager::unsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - Cmd::arg
    - check_resp3
    - cmd
    - ConnectionManager::update_subscription_tracker
    - Ok
    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:741,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:742,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:743,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:744,1
    - Dst: ConnectionManager::update_subscription_tracker
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:745,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:747,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 748
      start: 740
    functionDepth: 37
    functionLinenumber: 740
    functionLinenumberEnd: 748
    functionName: ConnectionManager::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - Cmd::arg
    - check_resp3
    - cmd
    - ConnectionManager::update_subscription_tracker
    - Ok
    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:754,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:755,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:756,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:757,1
    - Dst: ConnectionManager::update_subscription_tracker
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:758,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 761
      start: 753
    functionDepth: 37
    functionLinenumber: 753
    functionLinenumberEnd: 761
    functionName: ConnectionManager::punsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - Cmd::arg
    - check_resp3
    - cmd
    - ConnectionManager::update_subscription_tracker
    - Ok
    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:767,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:767,1
    - Dst: statistics
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 768
      start: 766
    functionDepth: 44
    functionLinenumber: 766
    functionLinenumberEnd: 768
    functionName: ConnectionManager::get_cache_statistics
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - map
    - statistics
    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:773,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:773,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 774
      start: 772
    functionDepth: 49
    functionLinenumber: 772
    functionLinenumberEnd: 774
    functionName: ConnectionManager::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - ConnectionManager::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: ConnectionManager::send_packed_commands
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:782,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&''a crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 783
      start: 776
    functionDepth: 49
    functionLinenumber: 776
    functionLinenumberEnd: 783
    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:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 787
      start: 785
    functionDepth: 49
    functionLinenumber: 785
    functionLinenumberEnd: 787
    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:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 798
      start: 795
    functionDepth: 48
    functionLinenumber: 795
    functionLinenumberEnd: 798
    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:802,1
    - Dst: Self::set_pipeline_buffer_size
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 804
      start: 801
    functionDepth: 48
    functionLinenumber: 801
    functionLinenumberEnd: 804
    functionName: tests::test_connection_manager_config_pipeline_buffer_size_custom
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - ConnectionManagerConfig::new
    - Self::set_pipeline_buffer_size
    linkageType: ''
    returnType: void
    signature: fn test_connection_manager_config_pipeline_buffer_size_custom()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 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: 47
    functionLinenumber: 112
    functionLinenumberEnd: 164
    functionName: PipelineSink::handle_message
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 1
    functionsReached:
    - send
    - Err
    - pop_front
    - PipelineSink::project
    - impl combine::Parser::first
    - Msg::from_owned_value
    - PushKind::has_reply
    - Msg::from_push_info
    - is_unrecoverable_error
    - Value::Array
    - Ok
    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: 47
    functionLinenumber: 245
    functionLinenumberEnd: 268
    functionName: PubSubSink::new
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 1
    functionsReached:
    - PipelineSink::new
    - tokio::sync::mpsc::unbounded_channel
    - "(\n        PendingRequest::poll_recv"
    - map
    - forward
    - stream::poll_fn
    linkageType: ''
    returnType: (Self, impl Future
    signature: 'fn new<T>(sink_stream: T,messages_sender: UnboundedSender<Msg>,) ->
      (Self, impl Future<Output = ()>)whereT: Sink<Vec<u8>, Error = RedisError>,T:
      Stream<Item = RedisResult<Value>>,T: Unpin + Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:271,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:273,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:273,1
    - Dst: closed_connection_error
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:278,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:281,1
    - Dst: closed_connection_error
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - input
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 283
      start: 270
    functionDepth: 48
    functionLinenumber: 270
    functionLinenumberEnd: 283
    functionName: PubSubSink::send_recv
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - send
    - Err
    - oneshot::channel
    - closed_connection_error
    - map_err
    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: 37
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: PubSubSink::subscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::get_packed_command'
    - map
    - PubSubSink::send_recv
    - Cmd::arg
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn subscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:315,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:315,1
    - Dst: '&mut 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: 37
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: PubSubSink::unsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::get_packed_command'
    - map
    - PubSubSink::send_recv
    - Cmd::arg
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn unsubscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:332,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:332,1
    - Dst: '&mut 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: 37
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: PubSubSink::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::get_packed_command'
    - map
    - PubSubSink::send_recv
    - Cmd::arg
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn psubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:349,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:349,1
    - Dst: '&mut 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: 37
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: PubSubSink::punsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::get_packed_command'
    - map
    - PubSubSink::send_recv
    - Cmd::arg
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn punsubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:360,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:360,1
    - Dst: '&mut 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: 37
    functionLinenumber: 356
    functionLinenumberEnd: 363
    functionName: PubSubSink::ping_message
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::get_packed_command'
    - from_redis_value
    - PubSubSink::send_recv
    - Cmd::arg
    - cmd
    - Ok
    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: 37
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: PubSubSink::ping
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - from_redis_value
    - Cmd::get_packed_command
    - PubSubSink::send_recv
    - cmd
    - Ok
    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: 46
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: Tokio::poll_write
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - RedisServer::poll_write
    - Pin::new
    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: 46
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: Tokio::poll_flush
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - Pin::new
    - RedisServer::poll_flush
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_flush(mut self: Pin<&mut Self>, cx: &mut task::Context) ->
      Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:84,1
    - Dst: 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: 46
    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: 46
    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: 45
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: Tokio::connect_tcp
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - map
    - Ok
    - connect_tcp
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn connect_tcp(socket_addr: SocketAddr,tcp_settings: &crate::io::tcp::TcpSettings,)
      -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 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: 49
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: Tokio::connect_tcp_tls
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - to_owned
    - connect_tcp
    - connection::create_rustls_config
    - rustls::pki_types::ServerName::try_from
    - Self::connect
    - map
    - Box::new
    - Arc::new
    - TlsConnector::from
    - Tokio::TcpTls
    - Ok
    - '&Option<TlsConnParams>::clone'
    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: 44
    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:
    - TaskHandle::Tokio
    - tokio::spawn
    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: 47
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: Monitor::new
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 1
    functionsReached:
    - send
    - super::setup_connection
    - ValueCodec::default
    - ok_or_else
    - next
    - Cmd::get_packed_command
    - Box::new
    - cmd
    - Self::framed
    - Ok
    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: 45
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: convert_value
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 0
    functionsReached:
    - impl combine::Parser::ok
    - and_then
    - T::from_redis_value
    - Result::ok
    linkageType: ''
    returnType: Option
    signature: 'fn convert_value<T>(value: RedisResult<Value>) -> Option<T>whereT:
      FromRedisValue,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/aio/monitor.rs:82,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/aio/monitor.rs:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: MonitorStream::poll_next
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 0
    functionsReached:
    - Poll::Ready
    - and_then
    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:
    - Poll::Ready
    - and_then
    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:189,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:190,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/mod.rs:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: ::tokio::sync::mpsc::UnboundedSender::send
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 1
    functionsReached:
    - Ok
    - ::tokio::sync::mpsc::UnboundedSender::send
    - Err
    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:198,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:199,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/mod.rs:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: ::tokio::sync::broadcast::Sender::send
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 1
    functionsReached:
    - Ok
    - ::tokio::sync::broadcast::Sender::send
    - Err
    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:208,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/mod.rs:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 211
    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:216,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:217,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/mod.rs:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 220
    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:228,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/mod.rs:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 229
    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:242,1
    - Dst: get_socket_addrs
      Src: /src/redis-rs/redis/src/aio/mod.rs:242,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/aio/mod.rs:242,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:243,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/aio/mod.rs:243,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/aio/mod.rs:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - host
    - port
    argTypes:
    - '&''b str'
    - u16
    constantsTouched: []
    func_position:
      end: 245
      start: 237
    functionDepth: 44
    functionLinenumber: 237
    functionLinenumberEnd: 245
    functionName: DefaultAsyncDNSResolver::resolve
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 0
    functionsReached:
    - Box::pin
    - RedisResult::map
    - Box::new
    - get_socket_addrs
    - Ok
    - into_iter
    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:249,1
    - Dst: ::tokio::net::lookup_host
      Src: /src/redis-rs/redis/src/aio/mod.rs:251,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/mod.rs:251,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/mod.rs:251,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/aio/mod.rs:254,1
    - Dst: ::smol::net::resolve
      Src: /src/redis-rs/redis/src/aio/mod.rs:257,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/mod.rs:257,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/aio/mod.rs:262,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/mod.rs:263,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/aio/mod.rs:263,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - host
    - port
    argTypes:
    - '&str'
    - u16
    constantsTouched: []
    func_position:
      end: 270
      start: 248
    functionDepth: 49
    functionLinenumber: 248
    functionLinenumberEnd: 270
    functionName: get_socket_addrs
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 1
    functionsReached:
    - ::smol::net::resolve
    - Err
    - collect
    - RedisResult::is_empty
    - RedisError::from
    - map
    - ::tokio::net::lookup_host
    - Runtime::locate
    - map_err
    - Ok
    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:14,1
    - Dst: Self::resolve
      Src: /src/redis-rs/redis/src/aio/connection.rs:16,1
    - Dst: futures_util::future::select_ok
      Src: /src/redis-rs/redis/src/aio/connection.rs:17,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/aio/connection.rs:18,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/aio/connection.rs:19,1
    - Dst: <T>::connect_tcp
      Src: /src/redis-rs/redis/src/aio/connection.rs:19,1
    - Dst: Self::resolve
      Src: /src/redis-rs/redis/src/aio/connection.rs:32,1
    - Dst: futures_util::future::select_ok
      Src: /src/redis-rs/redis/src/aio/connection.rs:33,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/aio/connection.rs:33,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/aio/connection.rs:34,1
    - Dst: <T>::connect_tcp_tls
      Src: /src/redis-rs/redis/src/aio/connection.rs:34,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/aio/connection.rs:48,1
    - Dst: <T>::connect_unix
      Src: /src/redis-rs/redis/src/aio/connection.rs:55,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/aio/connection.rs:59,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - connection_info
    - dns_resolver
    argTypes:
    - '&ConnectionInfo'
    - '&dyn AsyncDNSResolver'
    constantsTouched: []
    func_position:
      end: 66
      start: 10
    functionDepth: 51
    functionLinenumber: 10
    functionLinenumberEnd: 66
    functionName: connect_simple
    functionSourceFile: /src/redis-rs/redis/src/aio/connection.rs
    functionUses: 0
    functionsReached:
    - <T>::connect_tcp
    - Box::pin
    - RedisResult::map
    - fail
    - <T>::connect_tcp_tls
    - Self::resolve
    - futures_util::future::select_ok
    - <T>::connect_unix
    - Ok
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    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:79,1
    - Dst: assert_sync::<PubSub>
      Src: /src/redis-rs/redis/src/aio/connection.rs:80,1
    - Dst: assert_sync::<Monitor>
      Src: /src/redis-rs/redis/src/aio/connection.rs:81,1
    - Dst: assert_sync::<ConnectionManager>
      Src: /src/redis-rs/redis/src/aio/connection.rs:83,1
    - Dst: assert_sync::<cluster_async::ClusterConnection>
      Src: /src/redis-rs/redis/src/aio/connection.rs:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: tests::test_is_sync
    functionSourceFile: /src/redis-rs/redis/src/aio/connection.rs
    functionUses: 0
    functionsReached:
    - assert_sync::<MultiplexedConnection>
    - assert_sync::<Monitor>
    - assert_sync::<ConnectionManager>
    - assert_sync::<PubSub>
    - assert_sync::<cluster_async::ClusterConnection>
    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:
    - Ok
    - '&mut core::task::Context::advance'
    - std::task::Poll::Ready
    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: 46
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: Smol::poll_write
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - RedisServer::poll_write
    - Pin::new
    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: 46
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: Smol::poll_flush
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - Pin::new
    - RedisServer::poll_flush
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_flush(mut self: Pin<&mut Self>, cx: &mut task::Context) ->
      Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:144,1
    - Dst: 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: 46
    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: 46
    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: 45
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: Smol::connect_tcp
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - SmolWrapped::new
    - connect_tcp
    - map
    - Self::Tcp
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn connect_tcp(socket_addr: SocketAddr,tcp_settings: &crate::io::tcp::TcpSettings,)
      -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 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: 45
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: Smol::connect_tcp_tls
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - to_owned
    - Self::TcpTls
    - SmolWrapped::new
    - connect_tcp
    - connection::create_rustls_config
    - rustls::pki_types::ServerName::try_from
    - Self::connect
    - map
    - Box::new
    - Arc::new
    - TlsConnector::from
    - Ok
    - '&Option<TlsConnParams>::clone'
    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: 44
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: Smol::connect_unix
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - UnixStream::connect
    - SmolWrapped::new
    - Self::Unix
    - map
    - Ok
    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:
    - TaskHandle::Smol
    - smol::spawn
    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: 46
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: CacheConfig::new
    functionSourceFile: /src/redis-rs/redis/src/caching/config.rs
    functionUses: 11
    functionsReached:
    - Duration::from_secs
    - NonZeroUsize::new
    - RedisServer::unwrap
    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: 47
    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: 33
    functionLinenumber: 13
    functionLinenumberEnd: 46
    functionName: CacheablePipeline::resolve
    functionSourceFile: /src/redis-rs/redis/src/caching/cmd.rs
    functionUses: 0
    functionsReached:
    - crate::types::from_redis_value
    - Ok
    - push
    - resolve
    - get_next_reply
    - into_iter
    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: 47
    functionLinenumber: 74
    functionLinenumberEnd: 135
    functionName: CacheableCommand::resolve
    functionSourceFile: /src/redis-rs/redis/src/caching/cmd.rs
    functionUses: 0
    functionsReached:
    - Err
    - std::iter::zip
    - RedisError::from
    - bool::clone
    - impl Iterator<Item = Value>::next
    - Self::insert
    - clone
    - get_next_reply
    - Value::Array
    - Ok
    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: 36
    functionLinenumber: 137
    functionLinenumberEnd: 170
    functionName: CacheableCommand::pack_command
    functionSourceFile: /src/redis-rs/redis/src/caching/cmd.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - Cmd::new
    - arg
    - Cmd::pttl
    - clone
    - Cmd::arg
    - 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:
    - impl Iterator<Item = Value>::next
    - Err
    - 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: 48
    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: 46
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: CacheManager::new
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 2
    functionsReached:
    - ShardedLRU::new
    - Arc::new
    - RedisServer::increase_epoch
    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: 41
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: CacheManager::clone_and_increase_epoch
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - increase_epoch
    - clone
    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: 48
    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: 46
    functionLinenumber: 52
    functionLinenumberEnd: 71
    functionName: CacheManager::insert
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - insert
    - Duration::from_millis
    - add
    - FromRedisValue::from_redis_value_ref
    - Instant::now
    - std::cmp::min
    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: 41
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: CacheManager::statistics
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - into
    - clone
    linkageType: ''
    returnType: CacheStatistics
    signature: pub(crate) fn statistics(&self) -> CacheStatistics
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: first
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs: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: 46
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: CacheManager::handle_push_value
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - first
    - invalidate
    - 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:
    - '&Option::as_ref'
    - and_then
    - add
    - unwrap_or
    - Instant::now
    - Cmd::get_cache_config
    linkageType: ''
    returnType: Instant
    signature: 'fn calculate_expiration_time(&self, cmd: &Cmd) -> Instant'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs: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: 48
    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: 49
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: CacheManager::extract_simple_arguments
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - collect
    - Cmd::args_iter
    - Some
    - impl Clone + ExactSizeIterator::skip
    - 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: 50
    functionLinenumber: 141
    functionLinenumberEnd: 178
    functionName: CacheManager::process_multi_key_arguments
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - '&mut Vec<&''a [u8]>::push'
    - Vec::pop
    - CacheManager::prepare_key_buffer
    - Vec::new
    - RedisFuture::push
    - RedisServer::clone
    - push
    - inspect
    - Vec::iter
    - flatten
    - CacheManager::get
    - enumerate
    - bool::then
    - CacheManager::extract_simple_arguments
    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: 51
    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
    - CacheManager::process_multi_key_arguments
    - PrepareCacheResult::NotCached
    - '&''a str::starts_with'
    - Vec::new
    - 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: 49
    functionLinenumber: 215
    functionLinenumberEnd: 239
    functionName: CacheManager::handle_single_key_command
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - Cmd::arg_idx
    - CacheableCommand::Single
    - PrepareCacheResult::NotCached
    - as_slice
    - PrepareCacheResult::Cached
    - 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: 45
    functionLinenumber: 246
    functionLinenumberEnd: 272
    functionName: CacheManager::get_cached_cmd_inner
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 1
    functionsReached:
    - Cmd::arg_idx
    - crate::commands::is_cachable_cmd
    - CacheManager::handle_multi_key_command
    - is_multi_key
    - cmd::cmd_len
    - CacheManager::handle_single_key_command
    - CacheManager::calculate_expiration_time
    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: 49
    functionLinenumber: 276
    functionLinenumberEnd: 317
    functionName: CacheManager::get_cached_pipeline
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - contains
    - Vec::atomic
    - Vec::add_command
    - iter
    - RedisFuture::push
    - Pipeline::new
    - Cmd::clone
    - CacheManager::get_cached_cmd
    - enumerate
    - len
    - pack_command
    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: 52
    functionLinenumber: 336
    functionLinenumberEnd: 371
    functionName: tests::test_custom_command_ttl
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - '&str::as_slice'
    - Value::Int
    - Duration::from_millis
    - add
    - CacheConfig::new
    - Duration::from_secs
    - std::thread::sleep
    - Instant::now
    - Self::insert
    - CacheManager::new
    linkageType: ''
    returnType: void
    signature: fn test_custom_command_ttl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:376,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:377,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:378,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:379,1
    - Dst: CacheManager::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:381,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:381,1
    - Dst: Self::clone_and_increase_epoch
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:383,1
    - Dst: Self::clone_and_increase_epoch
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:384,1
    - Dst: Self::clone_and_increase_epoch
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:385,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:387,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:387,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:387,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:390,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:390,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:390,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:391,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:391,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:391,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:392,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:392,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:392,1
    - Dst: do_inserts
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:407,1
    - Dst: do_hit_gets
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:408,1
    - Dst: do_miss_gets
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:410,1
    - Dst: do_inserts
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:413,1
    - Dst: do_hit_gets
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:414,1
    - Dst: 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: 52
    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
    - '&str::as_slice'
    - Value::Int
    - CacheConfig::new
    - add
    - Duration::from_secs
    - do_miss_gets
    - do_inserts
    - Instant::now
    - CacheManager::clone_and_increase_epoch
    - CacheManager::new
    - do_hit_gets
    - Self::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: Cmd::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: 48
    functionLinenumber: 37
    functionLinenumberEnd: 59
    functionName: ShardedLRU::new
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 1
    functionsReached:
    - NonZeroUsize::new
    - std::sync::Mutex::new
    - Cmd::push
    - Statistics::default
    - RedisServer::unwrap
    - AtomicUsize::new
    - Arc::new
    - NonZeroUsize::get
    - Vec::with_capacity
    - LruCache::new
    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: 51
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: ShardedLRU::get_shard
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - Self::unwrap_or_else
    - TlsFilePaths::write
    - TlsFilePaths::finish
    - into_inner
    - DefaultHasher::new
    - Self::lock
    - len
    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: 52
    functionLinenumber: 69
    functionLinenumberEnd: 100
    functionName: ShardedLRU::get
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - std::sync::MutexGuard::get_mut
    - drop
    - ShardedLRU::get_shard
    - std::sync::MutexGuard::pop
    - Some
    - increase_hit
    - clone
    - increase_invalidate
    - Instant::now
    - increase_miss
    - len
    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: 52
    functionLinenumber: 102
    functionLinenumberEnd: 139
    functionName: ShardedLRU::insert
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - '&[u8]::to_vec'
    - ShardedLRU::get_shard
    - std::sync::MutexGuard::peek_mut
    - push
    - std::sync::MutexGuard::push
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn insert(&self,redis_key: &[u8],cmd_key: &[u8],value:
      Value,expire_time: Instant,epoch: usize,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ShardedLRU::get_shard
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:143,1
    - Dst: std::sync::MutexGuard::pop
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:143,1
    - Dst: increase_invalidate
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:145,1
    - Dst: len
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - cache_key
    argTypes:
    - '&Vec<u8>'
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 52
    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
    - ShardedLRU::get_shard
    - len
    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: 49
    functionLinenumber: 164
    functionLinenumberEnd: 202
    functionName: tests::test_expire
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - NonZeroUsize::new
    - Value::Boolean
    - Duration::from_millis
    - add
    - Duration::from_secs
    - std::thread::sleep
    - ShardedLRU::new
    - RedisServer::unwrap
    - Instant::now
    - Self::insert
    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: 49
    functionLinenumber: 205
    functionLinenumberEnd: 241
    functionName: tests::test_different_cmd_keys
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - NonZeroUsize::new
    - Value::Int
    - Duration::from_millis
    - add
    - Duration::from_secs
    - std::thread::sleep
    - ShardedLRU::new
    - RedisServer::unwrap
    - Instant::now
    - Self::insert
    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: 49
    functionLinenumber: 244
    functionLinenumberEnd: 270
    functionName: tests::test_invalidate
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - NonZeroUsize::new
    - to_vec
    - Value::Boolean
    - add
    - Duration::from_secs
    - ShardedLRU::new
    - RedisServer::unwrap
    - Self::invalidate
    - Instant::now
    - Self::insert
    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: 49
    functionLinenumber: 273
    functionLinenumberEnd: 312
    functionName: tests::test_epoch_change
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - NonZeroUsize::new
    - Value::Boolean
    - as_bytes
    - add
    - Duration::from_secs
    - ShardedLRU::new
    - RedisServer::unwrap
    - Instant::now
    - Self::insert
    linkageType: ''
    returnType: void
    signature: fn test_epoch_change()
  - 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:
    - slot
    - get_hashtag
    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: 41
    functionLinenumber: 131
    functionLinenumberEnd: 145
    functionName: command_for_multi_slot_indices
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - '&''a impl Routable::arg_idx'
    - Cmd::new
    - Cmd::arg
    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
    - Value::Int
    - Self::into_iter
    - RedisResult::Err
    - Ok
    - std::cmp::min
    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: 51
    functionLinenumber: 176
    functionLinenumberEnd: 221
    functionName: logical_aggregate
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Err
    - std::iter::Chain::try_fold
    - into
    - Value::Int
    - Self::into_iter
    - collect
    - std::iter::Chain::map
    - Vec::new
    - Ok
    - RedisResult::into_iter
    - is_empty
    - RedisResult::Err
    - Value::Array
    - std::iter::Chain::enumerate
    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: 51
    functionLinenumber: 223
    functionLinenumberEnd: 263
    functionName: combine_map_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - Value::BulkString
    - Value::Int
    - collect
    - std::iter::Chain::map
    - next
    - Value::Map
    - or_insert
    - entry
    - HashMap::new
    - Ok
    - into_iter
    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: 51
    functionLinenumber: 266
    functionLinenumberEnd: 283
    functionName: combine_array_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - Vec::new
    - RedisResult::extend
    - Value::Array
    - Ok
    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: 43
    functionLinenumber: 312
    functionLinenumberEnd: 373
    functionName: calculate_multi_slot_result_indices
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Err
    - RedisResult::step_by
    - Cmd::iter
    - RedisError::from
    - Cow::Borrowed
    - map
    - '&''a [(Route, Vec<usize>)]::iter'
    - check_indices_input
    - "iter()\n                        .step_by(2)\n                        .map(|idx|\
      \ idx / 2)\n                        .collect::<Vec<usize>>"
    - Cmd::len
    - Cow::Owned
    - "iter()\n                        .step_by(3)\n                        .map(|idx|\
      \ idx / 3)\n                        .collect::<Vec<usize>>"
    - Ok
    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: 44
    functionLinenumber: 396
    functionLinenumberEnd: 441
    functionName: combine_and_sort_array_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Self::iter
    - Err
    - into
    - zip
    - std::iter::Chain::zip
    - RedisError::from
    - RedisResult::resize
    - iter
    - RedisResult::len
    - Vec::new
    - Self::len
    - fold
    - RedisResult::into_iter
    - Value::Array
    - Ok
    - calculate_multi_slot_result_indices
    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:
    - get_slot
    - Route::new
    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: 51
    functionLinenumber: 494
    functionLinenumberEnd: 562
    functionName: multi_shard
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - ResponsePolicy::for_command
    - SingleNodeRoutingInfo::SpecificNode
    - RedisServer::entry
    - unwrap
    - or_insert
    - RedisServer::into_iter
    - MultipleNodeRoutingInfo::MultiSlot
    - RoutingInfo::MultiNode
    - get_route
    - Option::arg_idx
    - RedisServer::pop
    - commands::is_readonly_cmd
    - push
    - RoutingInfo::SingleNode
    - std::iter::Chain::collect
    - RedisServer::iter_mut
    - Option::is_none
    - RedisServer::len
    - RedisServer::is_empty
    - Some
    - Vec::new
    - incr_add_next_arg
    - HashMap::new
    linkageType: ''
    returnType: Option
    signature: 'fn multi_shard<R>(routable: &R,cmd: &[u8],first_key_index: usize,args_pattern:
      MultiSlotArgPattern,) -> Option<RoutingInfo>whereR: Routable + ?Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs: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:
    - ResponsePolicy::AggregateLogical
    - Some
    - 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: 53
    functionLinenumber: 789
    functionLinenumberEnd: 859
    functionName: RoutingInfo::for_routable
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - ResponsePolicy::for_command
    - ok
    - map
    - SingleNodeRoutingInfo::SpecificNode
    - Option::and_then
    - base_routing
    - std::str::from_utf8
    - ConnectionAddr::command
    - RoutingInfo::for_key
    - RoutingInfo::MultiNode
    - parse::<u64>
    - Route::new
    - ConnectionAddr::arg_idx
    - multi_shard
    - RoutingInfo::SingleNode
    - Option::map
    - parse::<u16>
    - and_then
    - Some
    - ConnectionAddr::position
    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:
    - commands::is_readonly_cmd
    - get_route
    - 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: 44
    functionLinenumber: 873
    functionLinenumberEnd: 896
    functionName: Routable::command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Option::map
    - Routable::arg_idx
    - reserve
    - to_ascii_uppercase
    - Some
    - make_ascii_uppercase
    - as_slice
    - extend
    - len
    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: 49
    functionLinenumber: 910
    functionLinenumberEnd: 915
    functionName: Cmd::position
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - ServerType::eq_ignore_ascii_case
    - Cmd::args_iter
    - impl Clone + ExactSizeIterator::position
    linkageType: ''
    returnType: Option
    signature: 'fn position(&self, candidate: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs: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: 48
    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: 48
    functionLinenumber: 929
    functionLinenumberEnd: 937
    functionName: Value::position
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - ServerType::eq_ignore_ascii_case
    - iter
    - position
    linkageType: ''
    returnType: Option
    signature: 'fn position(&self, candidate: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_str
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 952
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 952
    functionName: Slot::master
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - as_str
    linkageType: ''
    returnType: '&str'
    signature: pub(crate) fn master(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 957
      start: 955
    functionDepth: 46
    functionLinenumber: 955
    functionLinenumberEnd: 957
    functionName: Slot::replicas
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Vec
    signature: pub(crate) fn replicas(&self) -> Vec<String>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - slot
    - slot_addr
    argTypes:
    - u16
    - SlotAddr
    constantsTouched: []
    func_position:
      end: 983
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 983
    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: 988
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 988
    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: 993
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 993
    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:997,1
    - Dst: random_slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 998
      start: 996
    functionDepth: 51
    functionLinenumber: 996
    functionLinenumberEnd: 998
    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:1003,1
    - Dst: random_range
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1005
    functionName: random_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 1
    functionsReached:
    - random_range
    - rand::rng
    linkageType: ''
    returnType: u16
    signature: fn random_slot() -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1008,1
    - Dst: position
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1008,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1010,1
    - Dst: position
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1010,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1013,1
    - Dst: then_some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1014
      start: 1007
    functionDepth: 48
    functionLinenumber: 1007
    functionLinenumberEnd: 1014
    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:1029,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1030,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1030,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1030,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1032,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1033,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1033,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1033,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1040,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1041,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1041,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1028
    functionDepth: 42
    functionLinenumber: 1028
    functionLinenumberEnd: 1047
    functionName: tests_routing::test_routing_info_mixed_capatalization
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - cmd
    - arg
    - Cmd::arg
    linkageType: ''
    returnType: void
    signature: fn test_routing_info_mixed_capatalization()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1054,1
    - Dst: RedisResult::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: 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: 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: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1071,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1074,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1075,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1075,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1075,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1076,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1079,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1080,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1080,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1080,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1081,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1084,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1085,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1085,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1086,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1089,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1090,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1090,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1090,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1091,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1094,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1094,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1094,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1103,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1103,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1103,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1146,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1147,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1148,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1149,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1160,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1160,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1160,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1161,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1161,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1161,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1179,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1179,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1179,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1179,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:1184,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1188,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1188,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1188,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1188,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1188,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1188,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1194,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1194,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1195,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1195,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1196,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1202,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1202,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1202,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1203,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1203,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1204,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1204,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1205,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1211,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1211,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1211,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1211,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1211,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1211,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1217,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1217,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1218,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1218,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1219,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1225,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1225,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1225,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1225,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1225,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1225,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1225,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1225,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1233,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1233,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1234,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1234,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 212
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1050
    functionDepth: 42
    functionLinenumber: 1050
    functionLinenumberEnd: 1248
    functionName: tests_routing::test_routing_info
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - slot
    - RedisResult::arg
    - parse_redis_value
    - Some
    - arg
    - SingleNodeRoutingInfo::SpecificNode
    - Cmd::get_packed_command
    - push
    - RedisResult::unwrap
    - RoutingInfo::SingleNode
    - Cmd::arg
    - cmd
    - Route::new
    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: 1270
      start: 1251
    functionDepth: 0
    functionLinenumber: 1251
    functionLinenumberEnd: 1270
    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:1274,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1275,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1275,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1275,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1275,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1276,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1277,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1278,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1278,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1279,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1279,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1280,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1280,1
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1290,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1291,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1291,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1291,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1291,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1292,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1293,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1294,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1294,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1295,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1295,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1296,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1273
    functionDepth: 42
    functionLinenumber: 1273
    functionLinenumberEnd: 1305
    functionName: tests_routing::test_multi_shard_keys_only
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - RedisServer::insert
    - Route
    - crate::cmd
    - std::collections::HashMap::new
    - arg
    - RoutingInfo::for_routable
    - Cmd::arg
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_multi_shard_keys_only()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1309,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1310,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1310,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1310,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1310,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1310,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1310,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1316,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1317,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1318,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1318,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1319,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1308
    functionDepth: 42
    functionLinenumber: 1308
    functionLinenumberEnd: 1328
    functionName: tests_routing::test_multi_shard_key_value_pairs
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - RedisServer::insert
    - Route
    - std::collections::HashMap::new
    - arg
    - RoutingInfo::for_routable
    - Cmd::arg
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_multi_shard_key_value_pairs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1332,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1333,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1333,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1333,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1333,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1333,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1338,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1339,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1340,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1340,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1341,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1341,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1342,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1331
    functionDepth: 42
    functionLinenumber: 1331
    functionLinenumberEnd: 1351
    functionName: tests_routing::test_multi_shard_keys_and_path
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - RedisServer::insert
    - Route
    - std::collections::HashMap::new
    - arg
    - RoutingInfo::for_routable
    - Cmd::arg
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_multi_shard_keys_and_path()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1355,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1356,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1356,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1356,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1356,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1356,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1356,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1356,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1356,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1356,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1366,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1367,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1368,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1368,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1369,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1354
    functionDepth: 51
    functionLinenumber: 1354
    functionLinenumberEnd: 1378
    functionName: tests_routing::test_multi_shard_key_with_two_arg_triples
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - RedisServer::insert
    - Route
    - std::collections::HashMap::new
    - arg
    - RoutingInfo::for_routable
    - Cmd::arg
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_multi_shard_key_with_two_arg_triples()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1382,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1383,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1383,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1383,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1383,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1388,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1395,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1395,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1395,1
    - Dst: Cmd::sort_by
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1398,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1398,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1398,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1398,1
    - Dst: cmp
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1398,1
    - Dst: Option::iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1398,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1398,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1398,1
    - Dst: Cmd::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1400,1
    - Dst: std::iter::Chain::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1400,1
    - Dst: command_for_multi_slot_indices
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1401,1
    - Dst: Cmd::iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1401,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1404,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1381
    functionDepth: 51
    functionLinenumber: 1381
    functionLinenumberEnd: 1409
    functionName: tests_routing::test_command_creation_for_multi_shard
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - std::iter::Chain::map
    - iter
    - Option::iter
    - unwrap
    - Cmd::arg
    - cmd
    - cmp
    - command_for_multi_slot_indices
    - Cmd::iter
    - Cmd::sort_by
    - arg
    - Option::unwrap
    - Cmd::into_iter
    - enumerate
    - into_iter
    - next
    - '&mut Cmd::arg'
    - collect
    - RoutingInfo::for_routable
    - std::iter::Chain::enumerate
    linkageType: ''
    returnType: void
    signature: fn test_command_creation_for_multi_shard()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1413,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1414,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1414,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1414,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1412
    functionDepth: 51
    functionLinenumber: 1412
    functionLinenumberEnd: 1426
    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:
    - '&mut Cmd::arg'
    - arg
    - RoutingInfo::for_routable
    - Cmd::arg
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_combine_multi_shard_to_single_node_when_all_keys_are_in_same_slot()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1431,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1432,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1436,1
    - Dst: super::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1437,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1440,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1441,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1429
    functionDepth: 54
    functionLinenumber: 1429
    functionLinenumberEnd: 1458
    functionName: tests_routing::test_combining_results_into_single_array_only_keys
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Value::Array
    - Route
    - super::combine_and_sort_array_results
    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:1463,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1464,1
    - Dst: super::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1465,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1468,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1461
    functionDepth: 54
    functionLinenumber: 1461
    functionLinenumberEnd: 1482
    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:
    - Value::Array
    - Route
    - super::combine_and_sort_array_results
    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:1487,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1488,1
    - Dst: super::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1489,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1492,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1485
    functionDepth: 54
    functionLinenumber: 1485
    functionLinenumberEnd: 1506
    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:
    - Value::Array
    - Route
    - super::combine_and_sort_array_results
    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:1511,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1512,1
    - Dst: super::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1513,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1516,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1509
    functionDepth: 54
    functionLinenumber: 1509
    functionLinenumberEnd: 1530
    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:
    - Value::Array
    - Route
    - super::combine_and_sort_array_results
    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:1535,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1535,1
    - Dst: super::combine_map_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1552,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1552,1
    - Dst: sort_unstable_by
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1558,1
    - Dst: cmp
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1559,1
    - Dst: sort_unstable_by
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1566,1
    - Dst: cmp
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1567,1
    - Dst: super::combine_map_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1533
    functionDepth: 50
    functionLinenumber: 1533
    functionLinenumberEnd: 1575
    functionName: tests_routing::test_combine_map_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - cmp
    - super::combine_map_results
    - RedisResult::unwrap
    - sort_unstable_by
    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: 76
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 76
    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:81,1
    - Dst: min
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:82,1
    - Dst: max
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:82,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:85,1
    - Dst: random_range
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:85,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - retry
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 51
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: RetryParams::wait_time_for_retry
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - pow
    - rand::rng
    - Duration::from_millis
    - random_range
    - min
    - max
    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:121,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:121,1
    - Dst: transpose
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:123,1
    - Dst: None::unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:128,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:136,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:142,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:142,1
    - Dst: CacheManager::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:145,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:147,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:154,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 1
    argNames:
    - value
    argTypes:
    - BuilderParams
    constantsTouched: []
    func_position:
      end: 167
      start: 115
    functionDepth: 44
    functionLinenumber: 115
    functionLinenumberEnd: 167
    functionName: ClusterParams::from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - transpose
    - None::unwrap_or
    - Some
    - map
    - unwrap_or
    - unwrap
    - as_ref
    - CacheManager::new
    - Ok
    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:177,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - config
    argTypes:
    - cluster::ClusterConfig
    constantsTouched: []
    func_position:
      end: 186
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 186
    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:203,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:203,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:205,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:203,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - initial_nodes
    argTypes:
    - impl IntoIterator<Item = T>
    constantsTouched: []
    func_position:
      end: 209
      start: 199
    functionDepth: 50
    functionLinenumber: 199
    functionLinenumberEnd: 209
    functionName: ClusterClientBuilder::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 2
    functionsReached:
    - Default::default
    - collect
    - std::iter::Chain::map
    - into_connection_info
    - into_iter
    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:226,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:229,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:229,1
    - Dst: ClusterParams::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:236,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:237,1
    - Dst: clone_from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:238,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:240,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:240,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:240,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:245,1
    - Dst: clone_from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:246,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:248,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:248,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:248,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:253,1
    - Dst: tls_mode
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:254,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:259,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:260,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:269,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:269,1
    - Dst: '&''static str::is_some'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:275,1
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:275,1
    - Dst: '&''static str::as_deref'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:275,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:276,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:276,1
    - Dst: '&''static str::is_some'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:282,1
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:282,1
    - Dst: '&''static str::as_deref'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:282,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:283,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:283,1
    - Dst: ProtocolVersion::is_some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:288,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:288,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:289,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:289,1
    - Dst: TlsFilePaths::is_some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:295,1
    - Dst: tls_mode
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:295,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:296,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:296,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:303,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 152
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 223
    functionDepth: 45
    functionLinenumber: 223
    functionLinenumberEnd: 307
    functionName: ClusterClientBuilder::build
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 1
    functionsReached:
    - first
    - Err
    - into
    - ClusterParams::from
    - '&''static str::is_some'
    - RedisError::from
    - '&''static str::as_deref'
    - Some
    - map
    - as_deref
    - TlsFilePaths::is_some
    - clone_from
    - as_ref
    - is_none
    - tls_mode
    - ProtocolVersion::is_some
    - Ok
    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:311,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:311,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - password
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: ClusterClientBuilder::password
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - '&''static str::as_ref'
    - into
    - Some
    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:317,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:317,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - username
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: ClusterClientBuilder::username
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - '&''static str::as_ref'
    - into
    - Some
    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: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: ClusterClientBuilder::retries
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 31
    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: 331
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 331
    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: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    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: 345
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 345
    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:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tls
    argTypes:
    - TlsMode
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 354
    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: 373
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 373
    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:393,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:394,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - certificates
    argTypes:
    - TlsCertificates
    constantsTouched: []
    func_position:
      end: 399
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 399
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: ClusterClientBuilder::read_from_replicas
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 23
    functionsReached: []
    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:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - connection_timeout
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    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:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - response_timeout
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 424
    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: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 430
    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:463,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - push_sender
    argTypes:
    - impl AsyncPushSender
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 49
    functionLinenumber: 462
    functionLinenumberEnd: 465
    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: 471
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 471
    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:478,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - resolver
    argTypes:
    - impl AsyncDNSResolver
    constantsTouched: []
    func_position:
      end: 480
      start: 477
    functionDepth: 49
    functionLinenumber: 477
    functionLinenumberEnd: 480
    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:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cache_config
    argTypes:
    - CacheConfig
    constantsTouched: []
    func_position:
      end: 487
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 487
    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: Self::builder
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:510,1
    - Dst: build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - initial_nodes
    argTypes:
    - impl IntoIterator<Item = T>
    constantsTouched: []
    func_position:
      end: 511
      start: 507
    functionDepth: 47
    functionLinenumber: 507
    functionLinenumberEnd: 511
    functionName: ClusterClient::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Self::builder
    - build
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new<T: IntoConnectionInfo>(initial_nodes: impl IntoIterator<Item
      = T>,) -> RedisResult<ClusterClient>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - initial_nodes
    argTypes:
    - impl IntoIterator<Item = T>
    constantsTouched: []
    func_position:
      end: 518
      start: 514
    functionDepth: 51
    functionLinenumber: 514
    functionLinenumberEnd: 518
    functionName: ClusterClient::builder
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 38
    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:527,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:527,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 528
      start: 526
    functionDepth: 55
    functionLinenumber: 526
    functionLinenumberEnd: 528
    functionName: ClusterClient::get_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - cluster::ClusterConnection::new
    - clone
    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:540,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:541,1
    - Dst: with_config
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:541,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - cluster::ClusterConfig
    constantsTouched: []
    func_position:
      end: 544
      start: 536
    functionDepth: 55
    functionLinenumber: 536
    functionLinenumberEnd: 544
    functionName: ClusterClient::get_connection_with_config
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - with_config
    - cluster::ClusterConnection::new
    - clone
    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:554,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 553
    functionDepth: 55
    functionLinenumber: 553
    functionLinenumberEnd: 556
    functionName: ClusterClient::get_async_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - cluster_async::ClusterConnection::new
    - clone
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn get_async_connection(&self) -> RedisResult<cluster_async::ClusterConnection>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cluster_async::ClusterConnection::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:569,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:571,1
    - Dst: with_config
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - cluster::ClusterConfig
    constantsTouched: []
    func_position:
      end: 574
      start: 565
    functionDepth: 55
    functionLinenumber: 565
    functionLinenumberEnd: 574
    functionName: ClusterClient::get_async_connection_with_config
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - with_config
    - cluster_async::ClusterConnection::new
    - clone
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn get_async_connection_with_config(&self,config: cluster::ClusterConfig,)
      -> RedisResult<cluster_async::ClusterConnection>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cluster_async::ClusterConnection::new_pending
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:584,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:586,1
    - Dst: with_config
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - config
    argTypes:
    - cluster::ClusterConfig
    constantsTouched: []
    func_position:
      end: 588
      start: 580
    functionDepth: 55
    functionLinenumber: 580
    functionLinenumberEnd: 588
    functionName: ClusterClient::get_pending_async_connection_with_config
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - with_config
    - cluster_async::ClusterConnection::new_pending
    - clone
    linkageType: ''
    returnType: cluster_async::ClusterConnection
    signature: 'pub fn get_pending_async_connection_with_config(&self,config: cluster::ClusterConfig,)
      -> cluster_async::ClusterConnection'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cluster::ClusterConnection::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:595,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:595,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 596
      start: 591
    functionDepth: 55
    functionLinenumber: 591
    functionLinenumberEnd: 596
    functionName: ClusterClient::get_generic_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - cluster::ClusterConnection::new
    - clone
    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:612,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 614
      start: 600
    functionDepth: 55
    functionLinenumber: 600
    functionLinenumberEnd: 614
    functionName: ClusterClient::get_async_generic_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - cluster_async::ClusterConnection::new
    - clone
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn get_async_generic_connection<C>(&self,) -> RedisResult<cluster_async::ClusterConnection<C>>whereC:
      crate::aio::ConnectionLike+ cluster_async::Connect+ Clone+ Send+ Sync+ Unpin+
      ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 627
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 627
    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: 641
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 641
    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: 655
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 655
    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:659,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:659,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 661
      start: 658
    functionDepth: 48
    functionLinenumber: 658
    functionLinenumberEnd: 661
    functionName: tests::give_no_password
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - get_connection_data
    - RedisResult::unwrap
    - ClusterClient::new
    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:665,1
    - Dst: get_connection_data_with_password
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:665,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 667
      start: 664
    functionDepth: 48
    functionLinenumber: 664
    functionLinenumberEnd: 667
    functionName: tests::give_password_by_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap
    - ClusterClient::new
    - get_connection_data_with_password
    linkageType: ''
    returnType: void
    signature: fn give_password_by_initial_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClient::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:671,1
    - Dst: get_connection_data_with_username_and_password
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:671,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 674
      start: 670
    functionDepth: 48
    functionLinenumber: 670
    functionLinenumberEnd: 674
    functionName: tests::give_username_and_password_by_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap
    - ClusterClient::new
    - get_connection_data_with_username_and_password
    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:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 684
      start: 677
    functionDepth: 48
    functionLinenumber: 677
    functionLinenumberEnd: 684
    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:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 694
      start: 687
    functionDepth: 48
    functionLinenumber: 687
    functionLinenumberEnd: 694
    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:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 704
      start: 697
    functionDepth: 48
    functionLinenumber: 697
    functionLinenumberEnd: 704
    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:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 714
      start: 707
    functionDepth: 48
    functionLinenumber: 707
    functionLinenumberEnd: 714
    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:718,1
    - Dst: get_connection_data_with_username_and_password
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:718,1
    - Dst: ClusterClientBuilder::password
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:718,1
    - Dst: ClusterClientBuilder::username
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:718,1
    - Dst: ClusterClientBuilder::build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:718,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 725
      start: 717
    functionDepth: 51
    functionLinenumber: 717
    functionLinenumberEnd: 725
    functionName: tests::give_username_password_by_method
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - ClusterClientBuilder::build
    - ClusterClientBuilder::new
    - ClusterClientBuilder::password
    - ClusterClientBuilder::username
    - RedisResult::unwrap
    - get_connection_data_with_username_and_password
    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:729,1
    - Dst: Vec::<String>::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 731
      start: 728
    functionDepth: 48
    functionLinenumber: 728
    functionLinenumberEnd: 731
    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: Cmd::new
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:18,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:19,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 50
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: slot_cmd
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - Cmd::new
    - 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:25,1
    - Dst: rsplit_once
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:26,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:26,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:28,1
    - Dst: trim_start_matches
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:28,1
    - Dst: trim_end_matches
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:28,1
    - Dst: filter
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:28,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:29,1
    - Dst: zip
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:28,1
    - Dst: u16::from_str
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:30,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:30,1
    - Dst: ok_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - node
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 45
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: split_node_address
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached:
    - filter
    - u16::from_str
    - zip
    - ok_or_else
    - rsplit_once
    - RedisError::from
    - and_then
    - Some
    - trim_start_matches
    - Result::ok
    - is_empty
    - trim_end_matches
    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:54,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: 56
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 56
    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: split_node_address
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:65,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:67,1
    - Dst: get_connection_addr
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:68,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:69,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:72,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:75,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:76,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:77,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:78,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - node
    - cluster_params
    argTypes:
    - '&str'
    - '&ClusterParams'
    constantsTouched: []
    func_position:
      end: 82
      start: 61
    functionDepth: 46
    functionLinenumber: 61
    functionLinenumberEnd: 82
    functionName: get_connection_info
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 4
    functionsReached:
    - Default::default
    - clone
    - get_connection_addr
    - to_string
    - unwrap_or_default
    - split_node_address
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn get_connection_info(node: &str,cluster_params: &ClusterParams,)
      -> RedisResult<ConnectionInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:15,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:18,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:19,1
    - Dst: Option::len
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:20,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:40,1
    - Dst: String::from_utf8_lossy
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:47,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:48,1
    - Dst: is_wildcard_address
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:48,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:49,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:56,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:60,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:69,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:69,1
    - Dst: Option::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:72,1
    - Dst: std::iter::Chain::skip
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:72,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:74,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:75,1
    - Dst: try_to_address
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:78,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:83,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:83,1
    - Dst: RedisResult::push
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:85,1
    - Dst: Slot::new
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:85,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:89,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 98
    argCount: 2
    argNames:
    - raw_slot_resp
    - addr_of_answering_node
    argTypes:
    - Value
    - '&str'
    constantsTouched: []
    func_position:
      end: 90
      start: 9
    functionDepth: 52
    functionLinenumber: 9
    functionLinenumberEnd: 90
    functionName: parse_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/topology.rs
    functionUses: 0
    functionsReached:
    - Slot::new
    - String::from_utf8_lossy
    - Option::len
    - is_wildcard_address
    - Vec::with_capacity
    - filter_map
    - RedisResult::push
    - into_iter
    - into
    - '&str::into'
    - next
    - try_to_address
    - is_none
    - Option::into_iter
    - Ok
    - std::iter::Chain::skip
    - collect
    - Some
    - is_empty
    - 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:97,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:97,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:100,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:97,1
    - Dst: append
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:107,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - start
    - end
    - nodes
    argTypes:
    - u16
    - u16
    - Vec<(&str, u16)>
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 47
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: tests::slot_value_with_replicas
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/topology.rs
    functionUses: 0
    functionsReached:
    - collect
    - append
    - iter
    - map
    - Value::Array
    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:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - start
    - end
    - node
    - port
    argTypes:
    - u16
    - u16
    - '&str'
    - u16
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 48
    functionLinenumber: 111
    functionLinenumberEnd: 113
    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:117,1
    - Dst: parse_slots
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:119,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 53
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: tests::parse_slots_returns_slots_with_host_name_if_missing
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/topology.rs
    functionUses: 0
    functionsReached:
    - Value::Array
    - parse_slots
    - RedisResult::unwrap
    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:126,1
    - Dst: parse_slots
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:131,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:131,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:135,1
    - Dst: parse_slots
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:136,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 53
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: tests::parse_slots_treats_wildcard_hostnames_as_answering_node
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/topology.rs
    functionUses: 0
    functionsReached:
    - Value::Array
    - parse_slots
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_slots_treats_wildcard_hostnames_as_answering_node()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotAddrs::from_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - slot
    argTypes:
    - Slot
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: SlotMapValue::from_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotAddrs::from_slot
    linkageType: ''
    returnType: Self
    signature: 'fn from_slot(slot: Slot) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - read_from_replica
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 50
    functionLinenumber: 32
    functionLinenumberEnd: 37
    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(read_from_replica: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:41,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:41,1
    - Dst: SlotMapValue::from_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:43,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - slots
    - read_from_replica
    argTypes:
    - Vec<Slot>
    - bool
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: SlotMap::from_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - std::iter::Chain::map
    - RedisResult::into_iter
    - SlotMapValue::from_slot
    - collect
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_slots(slots: Vec<Slot>, read_from_replica: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:52,1
    - Dst: SlotMapValue::from_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - slots
    argTypes:
    - Vec<Slot>
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 47
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: SlotMap::fill_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - insert
    - SlotMapValue::from_slot
    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:57,1
    - Dst: range
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:58,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:58,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:58,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:63,1
    - Dst: slot_addr
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:64,1
    - Dst: slot_addr
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - route
    argTypes:
    - '&Route'
    constantsTouched: []
    func_position:
      end: 72
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 72
    functionName: SlotMap::slot_addr_for_route
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - slot
    - range
    - and_then
    - Some
    - next
    - slot_addr
    linkageType: ''
    returnType: Option
    signature: 'pub fn slot_addr_for_route(&self, route: &Route) -> Option<&ArcStr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 44
    functionLinenumber: 75
    functionLinenumberEnd: 77
    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:80,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 51
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: SlotMap::values
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - values
    - map
    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:84,1
    - Dst: RedisResult::extend
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:86,1
    - Dst: SlotMap::values
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:87,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:87,1
    - Dst: slot_addr
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:88,1
    - Dst: RedisResult::extend
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:92,1
    - Dst: SlotMap::values
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:92,1
    - Dst: impl Iterator::flat_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:92,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - only_primaries
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 49
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: SlotMap::all_unique_addresses
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - RedisResult::extend
    - HashSet::new
    - impl Iterator::flat_map
    - slot_addr
    - impl Iterator::map
    - SlotMap::values
    - into_iter
    linkageType: ''
    returnType: HashSet
    signature: 'fn all_unique_addresses(&self, only_primaries: bool) -> HashSet<&ArcStr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotMap::all_unique_addresses
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 50
    functionLinenumber: 98
    functionLinenumberEnd: 100
    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<&ArcStr>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotMap::all_unique_addresses
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 50
    functionLinenumber: 102
    functionLinenumberEnd: 104
    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<&ArcStr>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''b [(Route, Vec<usize>)]::iter'
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:113,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:113,1
    - Dst: SlotMap::slot_addr_for_route
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - routes
    argTypes:
    - '&''b [(Route, Vec<usize>)]'
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 47
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: SlotMap::addresses_for_multi_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::slot_addr_for_route
    - '&''b [(Route, Vec<usize>)]::iter'
    - map
    linkageType: ''
    returnType: impl Iterator
    signature: 'pub fn addresses_for_multi_slot<''a, ''b>(&''a self,routes: &''b [(Route,
      Vec<usize>)],) -> impl Iterator<Item = Option<&''a ArcStr>> + ''awhere''b: ''a,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - primary
    - replicas
    argTypes:
    - ArcStr
    - Vec<ArcStr>
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    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: ArcStr, replicas: Vec<ArcStr>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: choose
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:135,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:135,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: SlotAddrs::get_replica_node
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - choose
    - unwrap_or
    - rand::rng
    linkageType: ''
    returnType: '&ArcStr'
    signature: fn get_replica_node(&self) -> &ArcStr
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotAddrs::get_replica_node
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:143,1
    - Dst: SlotAddrs::get_replica_node
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - slot_addr
    - read_from_replica
    argTypes:
    - '&SlotAddr'
    - bool
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: SlotAddrs::slot_addr
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotAddrs::get_replica_node
    linkageType: ''
    returnType: '&ArcStr'
    signature: 'pub(crate) fn slot_addr(&self, slot_addr: &SlotAddr, read_from_replica:
      bool) -> &ArcStr'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotAddrs::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - slot
    argTypes:
    - Slot
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: SlotAddrs::from_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 1
    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:164,1
    - Dst: chain
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:164,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 47
    functionLinenumber: 161
    functionLinenumberEnd: 165
    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 ArcStr>,
      std::slice::Iter<'a, ArcStr>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - s
    - e
    - m
    - r
    argTypes:
    - u16
    - u16
    - ArcStr
    - Vec<ArcStr>
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 184
    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: ArcStr, r: Vec<ArcStr>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotMap::from_slots
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 194
    functionDepth: 49
    functionLinenumber: 194
    functionLinenumberEnd: 260
    functionName: tests::test_slot_map
    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()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotMap::from_slots
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 263
    functionDepth: 49
    functionLinenumber: 263
    functionLinenumberEnd: 286
    functionName: tests::test_slot_map_when_read_from_replica_is_false
    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_read_from_replica_is_false()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotMap::from_slots
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - read_from_replica
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 317
      start: 288
    functionDepth: 49
    functionLinenumber: 288
    functionLinenumberEnd: 317
    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(read_from_replica: bool) -> SlotMap'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:321,1
    - Dst: addresses_for_all_primaries
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 320
    functionDepth: 50
    functionLinenumber: 320
    functionLinenumberEnd: 331
    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
    - 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:335,1
    - Dst: addresses_for_all_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 351
      start: 334
    functionDepth: 50
    functionLinenumber: 334
    functionLinenumberEnd: 351
    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
    - 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:355,1
    - Dst: addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:360,1
    - Dst: "addresses_for_multi_slot(&routes)\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 354
    functionDepth: 50
    functionLinenumber: 354
    functionLinenumberEnd: 369
    functionName: tests::test_slot_map_get_multi_node
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - "addresses_for_multi_slot(&routes)\n            .collect::<Vec<_>>"
    - get_slot_map
    - addresses_for_multi_slot
    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:373,1
    - Dst: addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:378,1
    - Dst: "addresses_for_multi_slot(&routes)\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 385
      start: 372
    functionDepth: 50
    functionLinenumber: 372
    functionLinenumberEnd: 385
    functionName: tests::test_slot_map_should_ignore_replicas_in_multi_slot_if_read_from_replica_is_false
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - "addresses_for_multi_slot(&routes)\n            .collect::<Vec<_>>"
    - get_slot_map
    - addresses_for_multi_slot
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_should_ignore_replicas_in_multi_slot_if_read_from_replica_is_false()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:391,1
    - Dst: addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:400,1
    - Dst: "addresses_for_multi_slot(&routes)\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 414
      start: 390
    functionDepth: 50
    functionLinenumber: 390
    functionLinenumberEnd: 414
    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:
    - "addresses_for_multi_slot(&routes)\n            .collect::<Vec<_>>"
    - get_slot_map
    - addresses_for_multi_slot
    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:418,1
    - Dst: addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:425,1
    - Dst: "addresses_for_multi_slot(&routes)\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 437
      start: 417
    functionDepth: 50
    functionLinenumber: 417
    functionLinenumberEnd: 437
    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:
    - "addresses_for_multi_slot(&routes)\n            .collect::<Vec<_>>"
    - get_slot_map
    - addresses_for_multi_slot
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_get_none_when_slot_is_missing_from_multi_slot()
  - 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: 53
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: ClusterPipeline::with_capacity
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs
    functionUses: 0
    functionsReached:
    - Vec::with_capacity
    - HashSet::new
    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: 50
    functionLinenumber: 107
    functionLinenumberEnd: 128
    functionName: ClusterPipeline::query
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs
    functionUses: 0
    functionsReached:
    - trim
    - Cmd::arg_idx
    - Err
    - ClusterPipeline::compose_response
    - is_illegal_cmd
    - Option::unwrap_or
    - to_ascii_uppercase
    - RedisError::make_empty_command
    - unwrap_or
    - fail
    - std::str::from_utf8
    - is_empty
    - '&mut ClusterConnection::execute_pipeline'
    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:113,1
    - Dst: RedisFuture::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:113,1
    - Dst: impl combine::Parser::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:115,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:113,1
    - Dst: bool::req_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:117,1
    - Dst: RedisResult::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:117,1
    - Dst: impl combine::Parser::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:119,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:117,1
    - Dst: bool::req_packed_commands
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:121,1
    - Dst: RedisFuture::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:121,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - connection
    argTypes:
    - '&mut impl ConnectionLike'
    constantsTouched: []
    func_position:
      end: 126
      start: 111
    functionDepth: 55
    functionLinenumber: 111
    functionLinenumberEnd: 126
    functionName: Input::send
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - impl combine::Parser::extract_error
    - bool::req_command
    - RedisResult::and_then
    - bool::req_packed_command
    - map
    - RedisFuture::and_then
    - bool::req_packed_commands
    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:132,1
    - Dst: Cmd::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 136
    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:140,1
    - Dst: Cmd::position
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - candidate
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 49
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: Input::position
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Option::position
    - Cmd::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:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - Output
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    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: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: Vec::from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 8
    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:208,1
    - Dst: redis::ConnectionInfo::into_connection_info
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - info
    - timeout
    argTypes:
    - T
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 47
    functionLinenumber: 204
    functionLinenumberEnd: 209
    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:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 54
    functionLinenumber: 241
    functionLinenumberEnd: 243
    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:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - connection_timeout
    argTypes:
    - std::time::Duration
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    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:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - response_timeout
    argTypes:
    - std::time::Duration
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    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:283,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sender
    argTypes:
    - impl crate::aio::AsyncPushSender
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: ClusterConfig::set_push_sender
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - std::sync::Arc::new
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_push_sender(mut self, sender: impl crate::aio::AsyncPushSender)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:292,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - resolver
    argTypes:
    - impl crate::io::AsyncDNSResolver
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: ClusterConfig::set_dns_resolver
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - std::sync::Arc::new
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_dns_resolver(mut self, resolver: impl crate::io::AsyncDNSResolver)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_inner
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:170,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:171,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:172,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - initial_nodes
    - cluster_params
    argTypes:
    - '&[ConnectionInfo]'
    - ClusterParams
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: ClusterConnection::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 6
    functionsReached:
    - map_err
    - Self::new_inner
    - RedisError::from
    - Ok
    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:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 338
    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:347,1
    - Dst: Option<Duration>::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:347,1
    - Dst: is_zero
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:347,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:348,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:348,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:354,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:356,1
    - Dst: RedisResult::values
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:357,1
    - Dst: RedisResult::set_write_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:358,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 361
      start: 345
    functionDepth: 56
    functionLinenumber: 345
    functionLinenumberEnd: 361
    functionName: ClusterConnection::set_write_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Err
    - RedisError::from
    - Option<Duration>::unwrap
    - is_zero
    - Option<Duration>::is_some
    - borrow
    - RedisResult::values
    - RedisResult::set_write_timeout
    - borrow_mut
    - Ok
    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:370,1
    - Dst: Option<Duration>::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:370,1
    - Dst: is_zero
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:370,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:371,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:371,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:377,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:379,1
    - Dst: RedisResult::values
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:380,1
    - Dst: RedisResult::set_read_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:381,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:383,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 384
      start: 368
    functionDepth: 56
    functionLinenumber: 368
    functionLinenumberEnd: 384
    functionName: ClusterConnection::set_read_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Err
    - RedisError::from
    - Option<Duration>::unwrap
    - is_zero
    - Option<Duration>::is_some
    - borrow
    - RedisResult::values
    - RedisResult::set_read_timeout
    - borrow_mut
    - Ok
    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:1085,1
    - Dst: RedisResult::values_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1086,1
    - Dst: RedisResult::check_connection
      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: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1092
    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:393,1
    - Dst: Pipeline::commands
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pipe
    argTypes:
    - '&ClusterPipeline'
    constantsTouched: []
    func_position:
      end: 394
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 394
    functionName: ClusterConnection::execute_pipeline
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Pipeline::commands
    - ClusterConnection::send_recv_and_retry_cmds
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn execute_pipeline(&mut self, pipe: &ClusterPipeline)
      -> RedisResult<Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::with_capacity
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:404,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:404,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:405,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:407,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:408,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:408,1
    - Dst: ClusterConnection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:410,1
    - Dst: RedisResult::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:412,1
    - Dst: RedisResult::insert
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:413,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:416,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:418,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:426,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:431,1
    - Dst: RedisServer::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:433,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:434,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:436,1
    - Dst: RedisServer::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:438,1
    - Dst: std::iter::Chain::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:438,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:449,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:449,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:456,1
    - Dst: ClusterConnection::refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:457,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:458,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 459
      start: 403
    functionDepth: 52
    functionLinenumber: 403
    functionLinenumberEnd: 459
    functionName: ClusterConnection::create_initial_connections
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - RedisResult::check_connection
    - Err
    - ClusterConnection::refresh_slots
    - RedisServer::into_iter
    - len
    - RedisServer::push
    - into
    - '&str::to_string'
    - RedisError::from
    - to_string
    - Ok
    - ClusterConnection::connect
    - RedisResult::insert
    - RedisResult::is_empty
    - RedisServer::is_empty
    - HashMap::with_capacity
    - Vec::new
    - borrow_mut
    - std::iter::Chain::enumerate
    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:463,1
    - Dst: ClusterConnection::create_new_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:464,1
    - Dst: RedisResult::values
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:466,1
    - Dst: Self::flatten
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:466,1
    - Dst: values().flatten().collect::<Vec<_>>
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:466,1
    - Dst: sort_unstable
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:467,1
    - Dst: dedup
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:468,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:470,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:471,1
    - Dst: std::iter::Chain::filter_map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:471,1
    - Dst: RedisResult::remove
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:474,1
    - Dst: RedisResult::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:475,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:476,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:476,1
    - Dst: ClusterConnection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:480,1
    - Dst: RedisResult::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:481,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:482,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:482,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:471,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 491
      start: 462
    functionDepth: 56
    functionLinenumber: 462
    functionLinenumberEnd: 491
    functionName: ClusterConnection::refresh_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - ConnectionAddr::clone
    - ClusterConnection::connect
    - values().flatten().collect::<Vec<_>>
    - collect
    - ClusterConnection::create_new_slots
    - std::iter::Chain::filter_map
    - dedup
    - Some
    - RedisResult::values
    - sort_unstable
    - RedisResult::check_connection
    - RedisResult::remove
    - borrow_mut
    - Self::flatten
    - Ok
    - into_iter
    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:494,1
    - Dst: RedisResult::iter_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:497,1
    - Dst: RedisResult::req_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:498,1
    - Dst: cluster_handling::slot_cmd
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:498,1
    - Dst: super::topology::parse_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:499,1
    - Dst: ConnectionAddr::rsplit_once
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:499,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:499,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:500,1
    - Dst: SlotMap::from_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:500,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:509,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:510,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:510,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 515
      start: 493
    functionDepth: 55
    functionLinenumber: 493
    functionLinenumberEnd: 515
    functionName: ClusterConnection::create_new_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - cluster_handling::slot_cmd
    - Err
    - SlotMap::from_slots
    - super::topology::parse_slots
    - RedisError::from
    - Some
    - RedisResult::req_command
    - unwrap
    - RedisResult::iter_mut
    - borrow_mut
    - ConnectionAddr::rsplit_once
    - Ok
    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:518,1
    - Dst: C::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:520,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:520,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:523,1
    - Dst: Cmd::exec
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:523,1
    - Dst: RedisResult::set_read_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:525,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:525,1
    - Dst: RedisResult::set_write_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:526,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:526,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:527,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - node
    argTypes:
    - '&ArcStr'
    constantsTouched: []
    func_position:
      end: 528
      start: 517
    functionDepth: 47
    functionLinenumber: 517
    functionLinenumberEnd: 528
    functionName: ClusterConnection::connect
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 2
    functionsReached:
    - cluster_handling::get_connection_info
    - C::connect
    - Cmd::exec
    - Some
    - borrow
    - Ok
    - RedisResult::set_read_timeout
    - RedisResult::set_write_timeout
    - cmd::cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'fn connect(&self, node: &ArcStr) -> RedisResult<C>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:535,1
    - Dst: RedisResult::slot_addr_for_route
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:536,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:537,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:537,1
    - Dst: get_random_connection_or_error
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - connections
    - route
    argTypes:
    - '&''a mut HashMap<ArcStr, C>'
    - '&Route'
    constantsTouched: []
    func_position:
      end: 543
      start: 530
    functionDepth: 55
    functionLinenumber: 530
    functionLinenumberEnd: 543
    functionName: ClusterConnection::get_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - ConnectionAddr::clone
    - RedisResult::slot_addr_for_route
    - borrow
    - ClusterConnection::get_connection_by_addr
    - get_random_connection_or_error
    linkageType: ''
    returnType: (ArcStr, RedisResult
    signature: 'fn get_connection<''a>(&self,connections: &''a mut HashMap<ArcStr,
      C>,route: &Route,) -> (ArcStr, RedisResult<&''a mut C>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::entry
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:550,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:550,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:552,1
    - Dst: into_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:552,1
    - Dst: ClusterConnection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:557,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:558,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - connections
    - addr
    argTypes:
    - '&''a mut HashMap<ArcStr, C>'
    - '&ArcStr'
    constantsTouched: []
    func_position:
      end: 561
      start: 545
    functionDepth: 50
    functionLinenumber: 545
    functionLinenumberEnd: 561
    functionName: ClusterConnection::get_connection_by_addr
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - insert
    - ConnectionAddr::clone
    - ClusterConnection::connect
    - into_mut
    - RedisResult::entry
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'fn get_connection_by_addr<''a>(&self,connections: &''a mut HashMap<ArcStr,
      C>,addr: &ArcStr,) -> RedisResult<&''a mut C>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:564,1
    - Dst: RedisResult::slot_addr_for_route
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:567,1
    - Dst: Option::ok_or
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:567,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:570,1
    - Dst: SlotAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:570,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:573,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:575,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:576,1
    - Dst: addr_for_slot
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:576,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:576,1
    - Dst: random_range
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:577,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:582,1
    - Dst: addr_for_slot
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:582,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:584,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 586
      start: 563
    functionDepth: 55
    functionLinenumber: 563
    functionLinenumberEnd: 586
    functionName: ClusterConnection::get_addr_for_cmd
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - SlotAddr::clone
    - rand::rng
    - random_range
    - RedisResult::slot_addr_for_route
    - borrow
    - Option::ok_or
    - addr_for_slot
    - RoutingInfo::for_routable
    - fail
    - Route::new
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'fn get_addr_for_cmd(&self, cmd: &Cmd) -> RedisResult<ArcStr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:589,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:591,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:591,1
    - Dst: ClusterConnection::get_addr_for_cmd
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:592,1
    - Dst: RedisServer::entry
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:593,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:594,1
    - Dst: or_insert_with
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:593,1
    - Dst: NodeCmd::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:595,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:596,1
    - Dst: Cmd::write_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:597,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:600,1
    - Dst: RedisServer::drain
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:601,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:602,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:604,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 1
    argNames:
    - cmds
    argTypes:
    - '&[Cmd]'
    constantsTouched: []
    func_position:
      end: 605
      start: 588
    functionDepth: 53
    functionLinenumber: 588
    functionLinenumberEnd: 605
    functionName: ClusterConnection::map_cmds_to_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - ConnectionAddr::clone
    - RedisResult::iter
    - Cmd::write_packed_command
    - or_insert_with
    - ClusterConnection::get_addr_for_cmd
    - RedisServer::entry
    - NodeCmd::new
    - Vec::new
    - push
    - RedisServer::drain
    - HashMap::new
    - enumerate
    - Ok
    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:612,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:612,1
    - Dst: cluster_handling::split_node_address
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:615,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:615,1
    - Dst: ClusterConnection::request
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:616,1
    - Dst: Input::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:617,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:618,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:618,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:619,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:616,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:626,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 2
    argNames:
    - input
    - addresses
    argTypes:
    - Input
    - HashSet<&'a ArcStr>
    constantsTouched: []
    func_position:
      end: 630
      start: 607
    functionDepth: 48
    functionLinenumber: 607
    functionLinenumberEnd: 630
    functionName: ClusterConnection::execute_on_all
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - collect
    - std::iter::Chain::map
    - Input::clone
    - Some
    - RedisResult::map
    - RedisResult::into_iter
    - RedisResult::unwrap
    - RoutingInfo::SingleNode
    - to_string
    - cluster_handling::split_node_address
    - Value::Array
    - ClusterConnection::request
    linkageType: ''
    returnType: Vec
    signature: 'fn execute_on_all<''a>(&''a self,input: Input,addresses: HashSet<&''a
      ArcStr>,) -> Vec<RedisResult<(&''a ArcStr, Value)>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterConnection::execute_on_all
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:637,1
    - Dst: RedisResult::addresses_for_all_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - input
    - slots
    argTypes:
    - Input
    - '&''a mut SlotMap'
    constantsTouched: []
    func_position:
      end: 638
      start: 632
    functionDepth: 49
    functionLinenumber: 632
    functionLinenumberEnd: 638
    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 ArcStr, 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_primaries
      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: 49
    functionLinenumber: 640
    functionLinenumberEnd: 646
    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 ArcStr, Value)>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:658,1
    - Dst: impl Iterator::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:658,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:658,1
    - Dst: ConnectionAddr::ok_or
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:662,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:662,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:666,1
    - Dst: '&''b [(Route, Vec<usize>)]::get'
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:667,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:667,1
    - Dst: crate::cluster_routing::command_for_multi_slot_indices
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:669,1
    - Dst: Cmd::iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:669,1
    - Dst: bool::req_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:670,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:670,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 4
    argNames:
    - input
    - slots
    - connections
    - routes
    argTypes:
    - Input
    - '&''a mut SlotMap'
    - '&''a mut HashMap<ArcStr, C>'
    - '&''b [(Route, Vec<usize>)]'
    constantsTouched: []
    func_position:
      end: 673
      start: 648
    functionDepth: 48
    functionLinenumber: 648
    functionLinenumberEnd: 673
    functionName: ClusterConnection::execute_multi_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - bool::req_command
    - Cmd::iter
    - collect
    - impl Iterator::enumerate
    - RedisError::from
    - map
    - crate::cluster_routing::command_for_multi_slot_indices
    - RedisResult::map
    - unwrap
    - RedisResult::addresses_for_multi_slot
    - ClusterConnection::get_connection_by_addr
    - ConnectionAddr::ok_or
    - '&''b [(Route, Vec<usize>)]::get'
    linkageType: ''
    returnType: Vec
    signature: 'fn execute_multi_slot<''a, ''b>(&''a self,input: Input,slots: &''a
      mut SlotMap,connections: &''a mut HashMap<ArcStr, C>,routes: &''b [(Route, Vec<usize>)],)
      -> Vec<RedisResult<(&''a ArcStr, Value)>>where''b: ''a,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:681,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:682,1
    - Dst: ClusterConnection::execute_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:686,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:689,1
    - Dst: ClusterConnection::execute_on_all_primaries
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:690,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:693,1
    - Dst: ClusterConnection::execute_on_all_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:694,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:702,1
    - Dst: None::ok_or
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:705,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:707,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:705,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:720,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:721,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:725,1
    - Dst: None::unwrap_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:725,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:726,1
    - Dst: crate::cluster_routing::combine_map_results
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:728,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:729,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:729,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:731,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:729,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:741,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:744,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:746,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:747,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:751,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:753,1
    - Dst: None::unwrap_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:753,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:754,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:758,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:758,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:760,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:758,1
    - Dst: crate::cluster_routing::aggregate
      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:765,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:765,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:767,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:765,1
    - Dst: crate::cluster_routing::logical_aggregate
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:769,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:772,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:772,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:774,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:772,1
    - Dst: crate::cluster_routing::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:778,1
    - Dst: crate::cluster_routing::combine_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:782,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:788,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:788,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:791,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:791,1
    - Dst: ConnectionAddr::as_bytes
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:791,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:791,1
    - Dst: "into_iter()\n                    .map(|result| {\n                   \
        \     result.map(|(addr, val)| (Value::BulkString(addr.as_bytes().to_vec()),\
        \ val))\n                    })\n                    .collect::<RedisResult<Vec<_>>>"
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:788,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:794,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:794,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 149
    argCount: 3
    argNames:
    - input
    - routing
    - response_policy
    argTypes:
    - Input
    - MultipleNodeRoutingInfo
    - Option<ResponsePolicy>
    constantsTouched: []
    func_position:
      end: 797
      start: 675
    functionDepth: 49
    functionLinenumber: 675
    functionLinenumberEnd: 797
    functionName: ClusterConnection::execute_on_multiple_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - ClusterConnection::execute_on_all_nodes
    - Value::BulkString
    - drop
    - std::iter::Chain::map
    - map
    - ConnectionAddr::as_bytes
    - None::unwrap_or_else
    - crate::cluster_routing::logical_aggregate
    - crate::cluster_routing::combine_map_results
    - "into_iter()\n                    .map(|result| result.map(|(_, value)| value))\n\
      \                    .collect::<RedisResult<Vec<_>>>"
    - Err
    - ClusterConnection::execute_multi_slot
    - crate::cluster_routing::combine_and_sort_array_results
    - to_vec
    - RedisResult::len
    - RedisResult::into_iter
    - "into_iter()\n                    .map(|result| {\n                        result.map(|(addr,\
      \ val)| (Value::BulkString(addr.as_bytes().to_vec()), val))\n              \
      \      })\n                    .collect::<RedisResult<Vec<_>>>"
    - into
    - crate::cluster_routing::combine_array_results
    - crate::cluster_routing::aggregate
    - Ok
    - ClusterConnection::execute_on_all_primaries
    - Some
    - Value::Map
    - None::ok_or
    - "into_iter()\n                    .map(|res| res.map(|(_, val)| val))\n    \
      \                .collect::<RedisResult<Vec<_>>>"
    - borrow_mut
    linkageType: ''
    returnType: RedisResult
    signature: 'fn execute_on_multiple_nodes(&self,input: Input,routing: MultipleNodeRoutingInfo,response_policy:
      Option<ResponsePolicy>,) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterConnection::execute_on_multiple_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:804,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:804,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:808,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:817,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:818,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:823,1
    - Dst: RedisResult::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:828,1
    - Dst: RedisResult::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:829,1
    - Dst: RedisFuture::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:829,1
    - Dst: impl combine::Parser::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:830,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:831,1
    - Dst: get_random_connection_or_error
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:838,1
    - Dst: ClusterConnection::get_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:841,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:844,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:845,1
    - Dst: ClusterConnection::get_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:849,1
    - Dst: Route::new_random_primary
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:849,1
    - Dst: RedisResult::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:853,1
    - Dst: Input::send
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:853,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:857,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:859,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:860,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:863,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:863,1
    - Dst: ClusterConnection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:864,1
    - Dst: RedisResult::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:865,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:866,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:866,1
    - Dst: ClusterConnection::refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:870,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:874,1
    - Dst: retry_method
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:878,1
    - Dst: redirect_node
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:880,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:880,1
    - Dst: Redirect::Ask
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:882,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:882,1
    - Dst: ClusterConnection::refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:886,1
    - Dst: redirect_node
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:888,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:888,1
    - Dst: Redirect::Moved
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:890,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:890,1
    - Dst: wait_time_for_retry
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:894,1
    - Dst: thread::sleep
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:898,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:901,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:903,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:903,1
    - Dst: ClusterConnection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:904,1
    - Dst: RedisResult::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:905,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:906,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:906,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:912,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:917,1
    - Dst: ClusterConnection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:918,1
    - Dst: RedisResult::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:919,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:920,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:920,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 207
    argCount: 2
    argNames:
    - input
    - route_option
    argTypes:
    - Input
    - Option<RoutingInfo>
    constantsTouched: []
    func_position:
      end: 929
      start: 800
    functionDepth: 50
    functionLinenumber: 800
    functionLinenumberEnd: 929
    functionName: ClusterConnection::request
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - take
    - impl combine::Parser::extract_error
    - Redirect::Ask
    - Input::send
    - fail
    - borrow
    - RedisFuture::and_then
    - RedisResult::check_connection
    - kind
    - insert
    - Err
    - ClusterConnection::refresh_slots
    - RedisResult::map
    - remove
    - thread::sleep
    - redirect_node
    - into
    - ClusterConnection::get_connection
    - RedisResult::and_then
    - ClusterConnection::execute_on_multiple_nodes
    - retry_method
    - Route::new_random_primary
    - to_string
    - ClusterConnection::get_connection_by_addr
    - Ok
    - get_random_connection_or_error
    - Option::map
    - Redirect::Moved
    - ClusterConnection::connect
    - wait_time_for_retry
    - borrow_mut
    - RedisResult::req_packed_command
    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:937,1
    - Dst: RedisResult::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:937,1
    - Dst: ClusterConnection::recv_all_commands
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:939,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:941,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:942,1
    - Dst: ClusterConnection::refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:946,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:953,1
    - Dst: ClusterConnection::request
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:954,1
    - Dst: Input::Cmd
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:954,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:954,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:956,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 1
    argNames:
    - cmds
    argTypes:
    - '&[Cmd]'
    constantsTouched: []
    func_position:
      end: 957
      start: 931
    functionDepth: 57
    functionLinenumber: 931
    functionLinenumberEnd: 957
    functionName: ClusterConnection::send_recv_and_retry_cmds
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - into
    - RedisResult::and_then
    - ClusterConnection::refresh_slots
    - RoutingInfo::for_routable
    - is_empty
    - ClusterConnection::recv_all_commands
    - Input::Cmd
    - ClusterConnection::request
    - Ok
    - 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:961,1
    - Dst: ClusterConnection::map_cmds_to_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:963,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:965,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:965,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:968,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - cmds
    argTypes:
    - '&[Cmd]'
    constantsTouched: []
    func_position:
      end: 969
      start: 960
    functionDepth: 54
    functionLinenumber: 960
    functionLinenumberEnd: 969
    functionName: ClusterConnection::send_all_commands
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - send_packed_command
    - ClusterConnection::get_connection_by_addr
    - ClusterConnection::map_cmds_to_nodes
    - borrow_mut
    - Ok
    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:977,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:978,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:983,1
    - Dst: recv_response
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:983,1
    - Dst: is_cluster_error
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:988,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:988,1
    - Dst: None::or
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:989,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:989,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:994,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:995,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - results
    - node_cmds
    argTypes:
    - '&mut [Value]'
    - '&[NodeCmd]'
    constantsTouched: []
    func_position:
      end: 997
      start: 972
    functionDepth: 53
    functionLinenumber: 972
    functionLinenumberEnd: 997
    functionName: ClusterConnection::recv_all_commands
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - RedisServer::push
    - Err
    - ClusterConnection::get_connection_by_addr
    - recv_response
    - is_cluster_error
    - Some
    - None::or
    - Vec::new
    - borrow_mut
    - Ok
    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:228,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:230,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:233,1
    - Dst: RouteBy::into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:234,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:230,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:240,1
    - Dst: io::Error::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:240,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:246,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:249,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:249,1
    - Dst: io::Error::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:249,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:246,1
    - Dst: timeout
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:261,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - cmd
    - routing
    argTypes:
    - Cmd
    - RoutingInfo
    constantsTouched: []
    func_position:
      end: 264
      start: 226
    functionDepth: 52
    functionLinenumber: 226
    functionLinenumberEnd: 264
    functionName: ClusterConnection::route_command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - send
    - Err
    - oneshot::channel
    - RedisError::from
    - unwrap_or_else
    - map
    - Arc::new
    - io::Error::new
    - map_err
    - RouteBy::into
    - timeout
    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: 1010
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1010
    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:1013,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1014,1
    - Dst: RedisError::make_empty_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1014,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1016,1
    - Dst: ClusterConnection::request
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1017,1
    - Dst: Input::Cmd
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1017,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1017,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 1018
      start: 1012
    functionDepth: 62
    functionLinenumber: 1012
    functionLinenumberEnd: 1018
    functionName: ClusterConnection::req_command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - RedisError::make_empty_command
    - RedisResult::map
    - RoutingInfo::for_routable
    - Input::Cmd
    - Cmd::is_empty
    - ClusterConnection::request
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_command(&mut self, cmd: &Cmd) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1432,1
    - Dst: Option::unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1432,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1433,1
    - Dst: ClusterConnection::route_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1434,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1434,1
    - Dst: RedisResult::boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 1435
      start: 1431
    functionDepth: 62
    functionLinenumber: 1431
    functionLinenumberEnd: 1435
    functionName: ClusterConnection::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::boxed
    - Option::unwrap_or
    - ClusterConnection::route_command
    - Cmd::clone
    - RoutingInfo::for_routable
    - RoutingInfo::SingleNode
    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:1444,1
    - Dst: ClusterConnection::route_pipeline
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1445,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1445,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1445,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pipeline
    - offset
    - count
    argTypes:
    - '&''a crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 1449
      start: 1437
    functionDepth: 61
    functionLinenumber: 1437
    functionLinenumberEnd: 1449
    functionName: ClusterConnection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - into
    - routing::route_for_pipeline
    - clone
    - boxed
    - 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: 1453
      start: 1451
    functionDepth: 0
    functionLinenumber: 1451
    functionLinenumberEnd: 1453
    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:1075,1
    - Dst: RedisResult::values
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1076,1
    - Dst: RedisResult::is_open
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1077,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1074
    functionDepth: 62
    functionLinenumber: 1074
    functionLinenumberEnd: 1082
    functionName: ClusterConnection::is_open
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - borrow
    - RedisResult::is_open
    - RedisResult::values
    linkageType: ''
    returnType: bool
    signature: fn is_open(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - a
    argTypes:
    - ArcStr
    constantsTouched: []
    func_position:
      end: 1110
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1110
    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: ArcStr) -> NodeCmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1532,1
    - Dst: choose
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1532,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1534,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1532,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1535,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - connections
    argTypes:
    - '&ConnectionMap<C>'
    constantsTouched: []
    func_position:
      end: 1536
      start: 1528
    functionDepth: 53
    functionLinenumber: 1528
    functionLinenumberEnd: 1536
    functionName: get_random_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - ConnectionAddr::clone
    - rand::rng
    - RedisResult::iter
    - map
    - choose
    - RedisResult::clone
    linkageType: ''
    returnType: Option
    signature: 'fn get_random_connection<C>(connections: &ConnectionMap<C>) -> Option<(ArcStr,
      C)>whereC: Clone,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_random_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1125,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1126,1
    - Dst: String::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1129,1
    - Dst: RedisServer::into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1129,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1130,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - connections
    argTypes:
    - '&mut HashMap<ArcStr, C>'
    constantsTouched: []
    func_position:
      end: 1136
      start: 1122
    functionDepth: 54
    functionLinenumber: 1122
    functionLinenumberEnd: 1136
    functionName: get_random_connection_or_error
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 2
    functionsReached:
    - Err
    - get_random_connection
    - RedisError::from
    - RedisServer::into
    - String::new
    - Ok
    linkageType: ''
    returnType: (ArcStr, RedisResult
    signature: 'fn get_random_connection_or_error<C: ConnectionLike + Connect + Sized>(connections:
      &mut HashMap<ArcStr, C>,) -> (ArcStr, RedisResult<&mut C>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cluster_handling::get_connection_info
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1166,1
    - Dst: ClusterParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1166,1
    - Dst: cluster_handling::get_connection_info
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1172,1
    - Dst: ClusterParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1145
    functionDepth: 60
    functionLinenumber: 1145
    functionLinenumberEnd: 1181
    functionName: tests::parse_cluster_node_host_port
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - cluster_handling::get_connection_info
    - ClusterParams::default
    linkageType: ''
    returnType: void
    signature: fn parse_cluster_node_host_port()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - 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
    - Dst: debug_tuple
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:22,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:22,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: InternalRoutingInfo::fmt
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - debug_tuple
    - finish
    - 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:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - InternalSingleNodeRouting<C>
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    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: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_tuple
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:63,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:63,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:63,1
    - Dst: debug_struct
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:67,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:67,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:67,1
    - Dst: debug_struct
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:74,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:74,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:74,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 80
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 80
    functionName: InternalSingleNodeRouting::fmt
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - debug_tuple
    - finish
    - 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:88,1
    - Dst: InternalSingleNodeRouting::ByAddress
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:91,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:91,1
    - Dst: InternalSingleNodeRouting::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:94,1
    - Dst: Route::new_random_primary
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - SingleNodeRoutingInfo
    constantsTouched: []
    func_position:
      end: 97
      start: 84
    functionDepth: 60
    functionLinenumber: 84
    functionLinenumberEnd: 97
    functionName: InternalSingleNodeRouting::from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - InternalSingleNodeRouting::SpecificNode
    - into
    - Route::new_random_primary
    - InternalSingleNodeRouting::ByAddress
    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:102,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:105,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:110,1
    - Dst: Route::new_random_primary
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 114
      start: 101
    functionDepth: 62
    functionLinenumber: 101
    functionLinenumberEnd: 114
    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:
    - Some
    - RoutingInfo::for_routable
    - 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:118,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:118,1
    - Dst: try_fold
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:118,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:121,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:122,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:124,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:124,1
    - Dst: Err
      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:126,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:125,1
    - Dst: slot_addr
      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:131,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:131,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:133,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 1
    argNames:
    - pipeline
    argTypes:
    - '&crate::Pipeline'
    constantsTouched: []
    func_position:
      end: 138
      start: 100
    functionDepth: 55
    functionLinenumber: 100
    functionLinenumberEnd: 138
    functionName: route_for_pipeline
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 1
    functionsReached:
    - Err
    - into
    - slot
    - Some
    - slot_addr
    - try_fold
    - cmd_iter
    - impl Iterator::map
    - Ok
    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:150,1
    - Dst: flushall
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:152,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:152,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:152,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 149
    functionDepth: 60
    functionLinenumber: 149
    functionLinenumberEnd: 161
    functionName: pipeline_routing_tests::test_first_route_is_found
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - flushall
    - get
    - cmd
    - 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:165,1
    - Dst: flushall
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:167,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:167,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 60
    functionLinenumber: 164
    functionLinenumberEnd: 172
    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
    - flushall
    - crate::Pipeline::new
    - 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:176,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:178,1
    - Dst: flushall
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:178,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:178,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:181,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:178,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:178,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:178,1
    - Dst: set
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 175
    functionDepth: 60
    functionLinenumber: 175
    functionLinenumberEnd: 189
    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:
    - set
    - flushall
    - arg
    - get
    - cmd
    - 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:193,1
    - Dst: flushall
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:195,1
    - Dst: set
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:195,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 60
    functionLinenumber: 192
    functionLinenumberEnd: 204
    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:
    - set
    - flushall
    - crate::Pipeline::new
    - get
    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:208,1
    - Dst: set
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:210,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:210,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:210,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:210,1
    - Dst: set
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:210,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:210,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:210,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:210,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:210,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 207
    functionDepth: 60
    functionLinenumber: 207
    functionLinenumberEnd: 221
    functionName: pipeline_routing_tests::unkeyed_commands_dont_affect_route
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - crate::Pipeline::new
    - Cmd::arg
    - cmd
    - set
    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:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - initial_nodes
    - cluster_params
    argTypes:
    - '&[ConnectionInfo]'
    - ClusterParams
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 183
    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:189,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:192,1
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:193,1
    - Dst: ClusterConnInner::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:194,1
    - Dst: oneshot::channel::<RedisResult<()>>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:196,1
    - Dst: mpsc::channel::<Message<_>>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:197,1
    - Dst: RedisResult::wait_for_initial_connection
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:199,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:200,1
    - Dst: stream::poll_fn
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:202,1
    - Dst: "(\n        PendingRequest::poll_recv"
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:202,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:202,1
    - Dst: forward
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:202,1
    - Dst: HandleContainer::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:207,1
    - Dst: tokio::runtime::Runtime::spawn
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:207,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 2
    argNames:
    - initial_nodes
    - cluster_params
    argTypes:
    - '&[ConnectionInfo]'
    - ClusterParams
    constantsTouched: []
    func_position:
      end: 223
      start: 185
    functionDepth: 61
    functionLinenumber: 185
    functionLinenumberEnd: 223
    functionName: ClusterConnection::new_inner
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::wait_for_initial_connection
    - send
    - mpsc::channel::<Message<_>>
    - "(\n        PendingRequest::poll_recv"
    - ClusterConnInner::new
    - map
    - clone
    - tokio::runtime::Runtime::spawn
    - Runtime::locate
    - Arc::new
    - HandleContainer::new
    - forward
    - unwrap_or_default
    - oneshot::channel::<RedisResult<()>>
    - stream::poll_fn
    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:274,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:277,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:280,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:283,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:277,1
    - Dst: closed_connection_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:288,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:289,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:291,1
    - Dst: closed_connection_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:291,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:289,1
    - Dst: timeout
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:299,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - pipeline
    - offset
    - count
    - route
    argTypes:
    - crate::Pipeline
    - usize
    - usize
    - SingleNodeRoutingInfo
    constantsTouched: []
    func_position:
      end: 302
      start: 267
    functionDepth: 59
    functionLinenumber: 267
    functionLinenumberEnd: 302
    functionName: ClusterConnection::route_pipeline
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - send
    - into
    - Err
    - oneshot::channel
    - unwrap_or_else
    - map
    - Arc::new
    - closed_connection_error
    - map_err
    - timeout
    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:326,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:327,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:328,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:329,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 57
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: ClusterConnection::subscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Cmd::exec_async
    - Cmd::arg
    - check_resp3
    - cmd
    - Ok
    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:337,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:338,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:339,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:340,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 342
      start: 336
    functionDepth: 57
    functionLinenumber: 336
    functionLinenumberEnd: 342
    functionName: ClusterConnection::unsubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - Cmd::arg
    - check_resp3
    - cmd
    - Ok
    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:368,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:369,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:370,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:371,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 373
      start: 367
    functionDepth: 57
    functionLinenumber: 367
    functionLinenumberEnd: 373
    functionName: ClusterConnection::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Cmd::exec_async
    - Cmd::arg
    - check_resp3
    - cmd
    - Ok
    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:379,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:380,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:381,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:382,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 384
      start: 378
    functionDepth: 57
    functionLinenumber: 378
    functionLinenumberEnd: 384
    functionName: ClusterConnection::punsubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - Cmd::arg
    - check_resp3
    - cmd
    - Ok
    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:408,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:409,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:410,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:411,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 413
      start: 407
    functionDepth: 57
    functionLinenumber: 407
    functionLinenumberEnd: 413
    functionName: ClusterConnection::ssubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Cmd::exec_async
    - Cmd::arg
    - check_resp3
    - cmd
    - Ok
    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:419,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:420,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:421,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:422,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 57
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: ClusterConnection::sunsubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - Cmd::arg
    - check_resp3
    - cmd
    - Ok
    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:429,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:429,1
    - Dst: statistics
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 430
      start: 428
    functionDepth: 55
    functionLinenumber: 428
    functionLinenumberEnd: 430
    functionName: ClusterConnection::get_cache_statistics
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - map
    - statistics
    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: 455
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 455
    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:468,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:469,1
    - Dst: Result::Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:472,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:473,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:483,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:483,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:483,1
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:484,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:485,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:487,1
    - Dst: request::ResultExpectation::External
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:490,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:493,1
    - Dst: addresses_for_all_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:508,1
    - Dst: HashSet::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:508,1
    - Dst: std::iter::Chain::filter_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:508,1
    - Dst: to_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:511,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:511,1
    - Dst: unzip
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:508,1
    - Dst: addresses_for_all_primaries
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:513,1
    - Dst: HashSet::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:513,1
    - Dst: std::iter::Chain::filter_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:513,1
    - Dst: to_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:516,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:516,1
    - Dst: unzip
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:513,1
    - Dst: addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:518,1
    - Dst: impl Iterator::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:518,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:518,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:522,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:523,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:523,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:525,1
    - Dst: crate::cluster_routing::command_for_multi_slot_indices
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:525,1
    - Dst: Cmd::as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:526,1
    - Dst: Cmd::iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:527,1
    - Dst: to_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:529,1
    - Dst: unzip
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:518,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:535,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:536,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:536,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:536,1
    - Dst: Self::aggregate_results
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:540,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:540,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 107
    argCount: 3
    argNames:
    - cmd
    - routing
    - response_policy
    argTypes:
    - '&''a Arc<Cmd>'
    - '&''a MultipleNodeRoutingInfo'
    - Option<ResponsePolicy>
    constantsTouched: []
    func_position:
      end: 544
      start: 462
    functionDepth: 52
    functionLinenumber: 462
    functionLinenumberEnd: 544
    functionName: Core::execute_on_multiple_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - read
    - Self::aggregate_results
    - drop
    - impl Iterator::enumerate
    - Cmd::as_ref
    - addresses_for_multi_slot
    - map
    - HashSet::into_iter
    - get
    - unwrap
    - Arc::new
    - Result::Err
    - addresses_for_all_primaries
    - Cmd::iter
    - std::iter::Chain::filter_map
    - addresses_for_all_nodes
    - Cmd::clone
    - extend
    - lock
    - filter_map
    - into
    - crate::cluster_routing::command_for_multi_slot_indices
    - request::ResultExpectation::External
    - ConnectionAddr::clone
    - unzip
    - oneshot::channel
    - and_then
    - to_request
    - is_empty
    - cloned
    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<(ArcStr, oneshot::Receiver<RedisResult<Response>>)>::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:551,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:552,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:552,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:565,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:565,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:565,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:566,1
    - Dst: convert_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:570,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:575,1
    - Dst: Vec<(ArcStr, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:575,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:575,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:575,1
    - Dst: RedisResult::pop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:578,1
    - Dst: ok_or
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:578,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:579,1
    - Dst: future::select_ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:587,1
    - Dst: Vec<(ArcStr, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:588,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:588,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:590,1
    - Dst: get_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:590,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:587,1
    - Dst: future::join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:607,1
    - Dst: Vec<(ArcStr, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:607,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:607,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:608,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:614,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:614,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:616,1
    - Dst: Some
      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:624,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:626,1
    - Dst: None::unwrap_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:626,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:627,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:636,1
    - Dst: Vec<(ArcStr, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:636,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:636,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:636,1
    - Dst: crate::cluster_routing::aggregate
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:638,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:641,1
    - Dst: Vec<(ArcStr, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:641,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:641,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:641,1
    - Dst: crate::cluster_routing::logical_aggregate
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:643,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:646,1
    - Dst: Vec<(ArcStr, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:646,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:646,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:646,1
    - Dst: crate::cluster_routing::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:650,1
    - Dst: crate::cluster_routing::combine_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:654,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:659,1
    - Dst: Vec<(ArcStr, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:659,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:659,1
    - Dst: crate::cluster_routing::combine_map_results
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:660,1
    - Dst: future::join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:665,1
    - Dst: Vec<(ArcStr, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:665,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:665,1
    - Dst: convert_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:667,1
    - Dst: or_else
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:667,1
    - Dst: try_into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:667,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:668,1
    - Dst: Value::ServerError
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:668,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:669,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:671,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:671,1
    - Dst: ConnectionAddr::as_bytes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:671,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:671,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:665,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>((Value::BulkString(addr.as_bytes().to_vec()),\
        \ result))\n                    }))\n                    .await\n        \
        \            .into_iter()\n                    .collect::<Result<Vec<_>, _>>"
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:665,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:676,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:676,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 162
    argCount: 3
    argNames:
    - receivers
    - routing
    - response_policy
    argTypes:
    - Vec<(ArcStr, oneshot::Receiver<RedisResult<Response>>)>
    - '&MultipleNodeRoutingInfo'
    - Option<ResponsePolicy>
    constantsTouched: []
    func_position:
      end: 679
      start: 546
    functionDepth: 55
    functionLinenumber: 546
    functionLinenumberEnd: 679
    functionName: Core::aggregate_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - Vec<(ArcStr, oneshot::Receiver<RedisResult<Response>>)>::is_empty
    - std::iter::Chain::map
    - map
    - ConnectionAddr::as_bytes
    - None::unwrap_or_else
    - crate::cluster_routing::logical_aggregate
    - crate::cluster_routing::combine_map_results
    - get_receiver
    - future::select_ok
    - Err
    - crate::cluster_routing::combine_and_sort_array_results
    - to_vec
    - convert_result
    - Box::pin
    - map_err
    - into_iter
    - into
    - or_else
    - crate::cluster_routing::combine_array_results
    - RedisError::from
    - crate::cluster_routing::aggregate
    - try_into
    - RedisResult::pop
    - "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>((Value::BulkString(addr.as_bytes().to_vec()), result))\n     \
      \               }))\n                    .await\n                    .into_iter()\n\
      \                    .collect::<Result<Vec<_>, _>>"
    - Ok
    - ok_or
    - future::join_all
    - and_then
    - Some
    - Value::ServerError
    - Value::Map
    - future::try_join_all
    - Vec<(ArcStr, oneshot::Receiver<RedisResult<Response>>)>::into_iter
    - Ok::<_, RedisError>
    - len
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn aggregate_results(receivers: Vec<(ArcStr, 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:689,1
    - Dst: Core::get_connection
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:695,1
    - Dst: ConnectionAddr::into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:697,1
    - Dst: RedisResult::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:698,1
    - Dst: inspect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:698,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:703,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:703,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:704,1
    - Dst: Cmd::as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:704,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:698,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:710,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 2
    argNames:
    - cmd
    - routing
    argTypes:
    - Arc<Cmd>
    - InternalRoutingInfo<C>
    constantsTouched: []
    func_position:
      end: 712
      start: 681
    functionDepth: 53
    functionLinenumber: 681
    functionLinenumberEnd: 712
    functionName: Core::try_cmd_request
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Err
    - ConnectionAddr::into
    - Cmd::as_ref
    - Core::execute_on_multiple_nodes
    - map
    - update_with_cmd
    - inspect
    - Core::get_connection
    - lock
    - Self::unwrap
    - RedisResult::req_packed_command
    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:721,1
    - Dst: RedisResult::req_packed_commands
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:725,1
    - Dst: inspect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:725,1
    - Dst: is_transaction
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:731,1
    - Dst: cmd_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:740,1
    - Dst: impl Iterator::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:740,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:741,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:741,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:743,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:725,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:749,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 4
    argNames:
    - pipeline
    - offset
    - count
    - route
    argTypes:
    - Arc<crate::Pipeline>
    - usize
    - usize
    - InternalSingleNodeRouting<C>
    constantsTouched: []
    func_position:
      end: 751
      start: 714
    functionDepth: 57
    functionLinenumber: 714
    functionLinenumberEnd: 751
    functionName: Core::try_pipeline_request
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Err
    - Self::unwrap
    - impl Iterator::enumerate
    - map
    - update_with_cmd
    - is_transaction
    - inspect
    - Core::get_connection
    - cmd_iter
    - lock
    - RedisResult::req_packed_commands
    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:755,1
    - Dst: Core::try_pipeline_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - CmdArg<C>
    constantsTouched: []
    func_position:
      end: 766
      start: 753
    functionDepth: 54
    functionLinenumber: 753
    functionLinenumberEnd: 766
    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:772,1
    - Dst: slot_addr_for_route
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:777,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:777,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:780,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:783,1
    - Dst: Core::get_redirected_connection
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:785,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:788,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:788,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:789,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:791,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:794,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:791,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:774,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:801,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:801,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:804,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:807,1
    - Dst: Core::connect_check_and_add
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:808,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:808,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:808,1
    - Dst: read
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:819,1
    - Dst: get_random_connection
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:820,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:821,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:824,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:825,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:831,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 88
    argCount: 1
    argNames:
    - route
    argTypes:
    - InternalSingleNodeRouting<C>
    constantsTouched: []
    func_position:
      end: 832
      start: 768
    functionDepth: 52
    functionLinenumber: 768
    functionLinenumberEnd: 832
    functionName: Core::get_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 2
    functionsReached:
    - read
    - Err
    - into
    - Core::get_redirected_connection
    - get_random_connection
    - slot_addr_for_route
    - drop
    - Some
    - map
    - ok
    - Core::connect_check_and_add
    - get
    - to_string
    - cloned
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn get_connection(&self,route: InternalSingleNodeRouting<C>,)
      -> RedisResult<(ArcStr, C)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:840,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:841,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:841,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:842,1
    - Dst: Core::connect_check_and_add
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:845,1
    - Dst: RedisResult::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:848,1
    - Dst: crate::cmd::cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:849,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:848,1
    - Dst: impl combine::Parser::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:851,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:854,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - redirect
    argTypes:
    - Redirect
    constantsTouched: []
    func_position:
      end: 855
      start: 834
    functionDepth: 52
    functionLinenumber: 834
    functionLinenumberEnd: 855
    functionName: Core::get_redirected_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - read
    - impl combine::Parser::extract_error
    - crate::cmd::cmd
    - drop
    - and_then
    - Core::connect_check_and_add
    - get
    - cloned
    - Ok
    - RedisResult::req_packed_command
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn get_redirected_connection(&self, redirect: Redirect) -> RedisResult<(ArcStr,
      C)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: connect_and_check::<C>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:858,1
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:860,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:860,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:864,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:864,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:865,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:867,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - addr
    argTypes:
    - '&ArcStr'
    constantsTouched: []
    func_position:
      end: 869
      start: 857
    functionDepth: 60
    functionLinenumber: 857
    functionLinenumberEnd: 869
    functionName: Core::connect_check_and_add
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 2
    functionsReached:
    - insert
    - ConnectionAddr::clone
    - Err
    - connect_and_check::<C>
    - write
    - RedisResult::clone
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn connect_check_and_add(&self, addr: &ArcStr) -> RedisResult<C>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:873,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:876,1
    - Dst: RedisResult::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:879,1
    - Dst: slot_cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:880,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:879,1
    - Dst: impl combine::Parser::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:882,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:883,1
    - Dst: ConnectionAddr::rsplit_once
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:883,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:883,1
    - Dst: build_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:884,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:887,1
    - Dst: RedisResult::values
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:893,1
    - Dst: Self::flatten
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:893,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:893,1
    - Dst: values().flatten().cloned().collect::<HashSet<_>>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:893,1
    - Dst: Core::refresh_connections_locked
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:894,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:896,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 897
      start: 872
    functionDepth: 60
    functionLinenumber: 872
    functionLinenumberEnd: 897
    functionName: Core::refresh_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - impl combine::Parser::extract_error
    - Core::refresh_connections_locked
    - Self::flatten
    - and_then
    - '{

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

      RedisFuture,RedisResult,ToRedisArgs,Value,

      aio::

      topology::parse_slots'
    - build_slot_map
    - values().flatten().cloned().collect::<HashSet<_>>
    - is_ok
    - unwrap
    - RedisResult::values
    - write
    - slot_cmd
    - cloned
    - ConnectionAddr::rsplit_once
    - Ok
    - RedisResult::req_packed_command
    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:904,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:906,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:906,1
    - Dst: RedisResult::remove
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:909,1
    - Dst: get_or_create_conn
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:911,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:906,1
    - Dst: stream::iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:917,1
    - Dst: buffer_unordered
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:917,1
    - Dst: max
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:918,1
    - Dst: fold
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:917,1
    - Dst: RedisResult::insert
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:921,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - connections
    - nodes
    argTypes:
    - '&mut ConnectionMap<C>'
    - HashSet<ArcStr>
    constantsTouched: []
    func_position:
      end: 926
      start: 899
    functionDepth: 58
    functionLinenumber: 899
    functionLinenumberEnd: 926
    functionName: Core::refresh_connections_locked
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - RedisResult::insert
    - "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
    - stream::iter
    - fold
    - RedisResult::remove
    - max
    - get_or_create_conn
    - buffer_unordered
    - len
    - into_iter
    linkageType: ''
    returnType: void
    signature: 'async fn refresh_connections_locked(&self,connections: &mut ConnectionMap<C>,nodes:
      HashSet<ArcStr>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:929,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:933,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:933,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:933,1
    - Dst: into_cmd_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:939,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:939,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:940,1
    - Dst: Option::unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:940,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:941,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:940,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:947,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:952,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:952,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 953
      start: 928
    functionDepth: 58
    functionLinenumber: 928
    functionLinenumberEnd: 953
    functionName: Core::resubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - into
    - Option::unwrap_or
    - into_cmd_iter
    - map
    - lock
    - unwrap
    - as_ref
    - RoutingInfo::for_routable
    - RoutingInfo::SingleNode
    - Self::unwrap
    - Arc::new
    - extend
    - get_subscription_pipeline
    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:968,1
    - Dst: Runtime::locate_and_sleep
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - duration
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 969
      start: 967
    functionDepth: 59
    functionLinenumber: 967
    functionLinenumberEnd: 969
    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:
    - ArcStr
    constantsTouched: []
    func_position:
      end: 987
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 987
    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: ArcStr) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 1015
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1015
    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: clear
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1019,1
    - Dst: fill_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1020,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - slot_map
    - slots_data
    argTypes:
    - '&mut SlotMap'
    - Vec<Slot>
    constantsTouched: []
    func_position:
      end: 1023
      start: 1018
    functionDepth: 56
    functionLinenumber: 1018
    functionLinenumberEnd: 1023
    functionName: build_slot_map
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - fill_slots
    - clear
    - Ok
    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:1030,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1031,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1031,1
    - Dst: SubscriptionTracker::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1031,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1035,1
    - Dst: RwLock::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1036,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1037,1
    - Dst: SlotMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1038,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1041,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1041,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1042,1
    - Dst: Core
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1045,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1047,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1048,1
    - Dst: ConnectionState::Recover
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1052,1
    - Dst: RecoverFuture::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1052,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1052,1
    - Dst: RedisResult::reconnect_to_initial_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 2
    argNames:
    - initial_nodes
    - cluster_params
    argTypes:
    - '&[ConnectionInfo]'
    - ClusterParams
    constantsTouched: []
    func_position:
      end: 1056
      start: 1029
    functionDepth: 59
    functionLinenumber: 1029
    functionLinenumberEnd: 1056
    functionName: ClusterConnInner::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - SubscriptionTracker::default
    - Default::default
    - to_vec
    - Self::clone
    - RedisResult::reconnect_to_initial_nodes
    - Mutex::new
    - ConnectionState::Recover
    - Box::pin
    - Some
    - is_some
    - Core
    - Vec::new
    - RecoverFuture::Reconnect
    - RwLock::new
    - Arc::new
    - SlotMap::new
    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:1062,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1062,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1062,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1062,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1064,1
    - Dst: connect_and_check
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1065,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1067,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1070,1
    - Dst: buffer_unordered
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1062,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1074,1
    - Dst: fold
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1062,1
    - Dst: ConnectionMap::<C>::with_capacity
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1076,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1076,1
    - Dst: RedisResult::insert
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1080,1
    - Dst: ConnectionAddr::into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1080,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1085,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1092,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1094,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1094,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1097,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1100,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1100,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 62
    argCount: 2
    argNames:
    - initial_nodes
    - params
    argTypes:
    - '&[ConnectionInfo]'
    - '&ClusterParams'
    constantsTouched: []
    func_position:
      end: 1107
      start: 1058
    functionDepth: 53
    functionLinenumber: 1058
    functionLinenumberEnd: 1107
    functionName: ClusterConnInner::create_initial_connections
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Err
    - connect_and_check
    - ConnectionAddr::into
    - RedisResult::insert
    - RedisResult::is_empty
    - iter
    - RedisError::from
    - Some
    - stream::iter
    - map
    - len
    - ConnectionMap::<C>::with_capacity
    - fold
    - to_string
    - cloned
    - buffer_unordered
    - Ok
    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:1111,1
    - Dst: Self::create_initial_connections
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1114,1
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1116,1
    - Dst: SlotMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1118,1
    - Dst: RedisResult::refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1120,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1121,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1109
    functionDepth: 61
    functionLinenumber: 1109
    functionLinenumberEnd: 1123
    functionName: ClusterConnInner::reconnect_to_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - clone
    - Ok
    - write
    - RedisResult::refresh_slots
    - Self::create_initial_connections
    - SlotMap::new
    linkageType: ''
    returnType: impl Future
    signature: fn reconnect_to_initial_nodes(&mut self) -> impl Future<Output = RedisResult<()>>
      + use<C>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1126,1
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1128,1
    - Dst: RedisResult::refresh_connections_locked
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - addrs
    argTypes:
    - HashSet<ArcStr>
    constantsTouched: []
    func_position:
      end: 1134
      start: 1125
    functionDepth: 63
    functionLinenumber: 1125
    functionLinenumberEnd: 1134
    functionName: ClusterConnInner::refresh_connections
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::refresh_connections_locked
    - write
    - clone
    linkageType: ''
    returnType: impl Future
    signature: 'fn refresh_connections(&mut self, addrs: HashSet<ArcStr>) -> 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:1138,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1146
    functionName: ClusterConnInner::wait_for_initial_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - std::mem::replace
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: async fn wait_for_initial_connection(&mut self) -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1150,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1150,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1158,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1162,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1162,1
    - Dst: refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1162,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1163,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1172,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1175,1
    - Dst: resubscribe
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1176,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 1
    argNames:
    - cx
    argTypes:
    - '&mut task::Context<''_>'
    constantsTouched: []
    func_position:
      end: 1179
      start: 1148
    functionDepth: 63
    functionLinenumber: 1148
    functionLinenumberEnd: 1179
    functionName: ClusterConnInner::poll_recover
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Err
    - Box::pin
    - resubscribe
    - refresh_slots
    - clone
    - is_ok
    - Poll::Ready
    - Ok
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_recover(&mut self, cx: &mut task::Context<''_>) -> Poll<Result<(),
      RedisError>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1184,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1184,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1184,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1187,1
    - Dst: try_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1187,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1187,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1188,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1188,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1189,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1190,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1192,1
    - Dst: boxed_sleep
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1201,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1203,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1203,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1204,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 1
    argNames:
    - request_handling
    argTypes:
    - Option<Retry<C>>
    constantsTouched: []
    func_position:
      end: 1211
      start: 1181
    functionDepth: 55
    functionLinenumber: 1181
    functionLinenumberEnd: 1211
    functionName: ClusterConnInner::handle_retries
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - try_request
    - Box::pin
    - Some
    - clone
    - unwrap
    - boxed_sleep
    - push
    - lock
    linkageType: ''
    returnType: void
    signature: 'fn handle_retries(&mut self, request_handling: Option<Retry<C>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1216,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1216,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1217,1
    - Dst: mem::take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1218,1
    - Dst: Self::drain
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1219,1
    - Dst: is_closed
      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:1227,1
    - Dst: try_request
      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:1227,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1227,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1228,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1228,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1229,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1230,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1236,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1240,1
    - Dst: RedisServer::poll_next
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1240,1
    - Dst: ClusterConnInner::handle_retries
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1245,1
    - Dst: change_state
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1246,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1249,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1251,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 78
    argCount: 1
    argNames:
    - cx
    argTypes:
    - '&mut task::Context<''_>'
    constantsTouched: []
    func_position:
      end: 1255
      start: 1213
    functionDepth: 63
    functionLinenumber: 1213
    functionLinenumberEnd: 1255
    functionName: ClusterConnInner::poll_complete
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - change_state
    - try_request
    - RedisServer::poll_next
    - is_closed
    - Box::pin
    - drop
    - Pin::new
    - Some
    - clone
    - unwrap
    - ClusterConnInner::handle_retries
    - push
    - mem::take
    - boxed
    - is_empty
    - Self::drain
    - Poll::Ready
    - lock
    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:1258,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1262,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1263,1
    - Dst: RedisServer::iter_pin_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1263,1
    - Dst: as_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1264,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1265,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1269,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1269,1
    - Dst: RedisServer::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1271,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1273,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1273,1
    - Dst: pop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1273,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1275,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1275,1
    - Dst: ClusterConnInner::handle_retries
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1279,1
    - Dst: request::choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1280,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1281,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1257
    functionDepth: 61
    functionLinenumber: 1257
    functionLinenumberEnd: 1288
    functionName: ClusterConnInner::send_refresh_error
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - take
    - RedisServer::push
    - Err
    - as_mut
    - pop
    - RedisServer::is_empty
    - std::mem::take
    - Pin::new
    - request::choose_response
    - clone
    - Vec::new
    - unwrap
    - ClusterConnInner::handle_retries
    - RedisServer::iter_pin_mut
    - lock
    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:1300,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1301,1
    - Dst: connect_and_check
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1302,1
    - Dst: connect_and_check
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - addr
    - conn_option
    - params
    argTypes:
    - '&str'
    - Option<C>
    - '&ClusterParams'
    constantsTouched: []
    func_position:
      end: 1307
      start: 1291
    functionDepth: 1
    functionLinenumber: 1291
    functionLinenumberEnd: 1307
    functionName: get_or_create_conn
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - check_connection
    - connect_and_check
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn get_or_create_conn<C>(addr: &str,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:1332,1
    - Dst: Self::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - next_state
    argTypes:
    - PollFlushAction
    constantsTouched: []
    func_position:
      end: 1336
      start: 1318
    functionDepth: 0
    functionLinenumber: 1318
    functionLinenumberEnd: 1336
    functionName: PollFlushAction::change_state
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::extend
    - Self::Reconnect
    linkageType: ''
    returnType: 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:1346,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 1347
      start: 1345
    functionDepth: 0
    functionLinenumber: 1345
    functionLinenumberEnd: 1347
    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: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1353,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1353,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1353,1
    - Dst: request::ResultExpectation::External
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1359,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - msg
    argTypes:
    - Pin<&mut Self>
    - Message<C>
    constantsTouched: []
    func_position:
      end: 1363
      start: 1349
    functionDepth: 55
    functionLinenumber: 1349
    functionLinenumberEnd: 1363
    functionName: ClusterConnInner::start_send
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - request::ResultExpectation::External
    - unwrap
    - push
    - lock
    - 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:1371,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1377,1
    - Dst: Pin<&mut Self>::waker
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1382,1
    - Dst: wake_by_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1382,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1387,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1387,1
    - Dst: ConnectionState::Recover
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1389,1
    - Dst: RecoverFuture::RecoverSlots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1389,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1389,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1390,1
    - Dst: refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1390,1
    - Dst: ConnectionState::Recover
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1394,1
    - Dst: RecoverFuture::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1394,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1394,1
    - Dst: ClusterConnInner::refresh_connections
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1395,1
    - Dst: impl Future::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1395,1
    - Dst: ConnectionState::Recover
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1399,1
    - Dst: RecoverFuture::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1399,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1399,1
    - Dst: ClusterConnInner::reconnect_to_initial_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 1405
      start: 1365
    functionDepth: 62
    functionLinenumber: 1365
    functionLinenumberEnd: 1405
    functionName: ClusterConnInner::poll_flush
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - impl Future::map
    - wake_by_ref
    - ConnectionState::Recover
    - Box::pin
    - Pin<&mut Self>::waker
    - Some
    - RecoverFuture::RecoverSlots
    - clone
    - Ok
    - refresh_slots
    - RecoverFuture::Reconnect
    - ClusterConnInner::refresh_connections
    - Poll::Ready
    - ClusterConnInner::send_refresh_error
    - ClusterConnInner::reconnect_to_initial_nodes
    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:1412,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1414,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1419,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1420,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1420,1
    - Dst: ClusterConnInner::poll_flush
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 1424
      start: 1407
    functionDepth: 64
    functionLinenumber: 1407
    functionLinenumberEnd: 1424
    functionName: ClusterConnInner::poll_close
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - ClusterConnInner::poll_complete
    - Err
    - ClusterConnInner::poll_flush
    - is_empty
    - Poll::Ready
    - Ok
    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:1470,1
    - Dst: crate::Client::open
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1471,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1472,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1469,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - info
    - config
    argTypes:
    - T
    - AsyncConnectionConfig
    constantsTouched: []
    func_position:
      end: 1477
      start: 1465
    functionDepth: 60
    functionLinenumber: 1465
    functionLinenumberEnd: 1477
    functionName: MultiplexedConnection::connect_with_config
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - get_multiplexed_async_connection_with_config
    - crate::Client::open
    - boxed
    - redis::ConnectionInfo::into_connection_info
    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:1484,1
    - Dst: AsyncConnectionConfig::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1486,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1486,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1486,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1487,1
    - Dst: Self::set_push_sender_internal
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1490,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1490,1
    - Dst: Self::set_dns_resolver_internal
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1493,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1493,1
    - Dst: Self::set_cache_manager
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1497,1
    - Dst: Self::clone_and_increase_epoch
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1497,1
    - Dst: C::connect_with_config
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1499,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1503,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1509,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1511,1
    - Dst: RedisResult::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1514,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1515,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 60
    argCount: 2
    argNames:
    - node
    - params
    argTypes:
    - '&str'
    - '&ClusterParams'
    constantsTouched: []
    func_position:
      end: 1516
      start: 1480
    functionDepth: 57
    functionLinenumber: 1480
    functionLinenumberEnd: 1516
    functionName: connect_and_check
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 2
    functionsReached:
    - Err
    - Self::clone
    - Self::clone_and_increase_epoch
    - Self::set_push_sender_internal
    - Some
    - Self::set_cache_manager
    - Self::set_connection_timeout
    - Ok
    - get_connection_info
    - AsyncConnectionConfig::default
    - Self::set_response_timeout
    - C::connect_with_config
    - cmd
    - Self::set_dns_resolver_internal
    - RedisResult::req_packed_command
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn connect_and_check<C>(node: &str, params: &ClusterParams)
      -> RedisResult<C>whereC: ConnectionLike + Connect + Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1522,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1523,1
    - Dst: query_async::<()>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1524,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut C'
    constantsTouched: []
    func_position:
      end: 1526
      start: 1518
    functionDepth: 58
    functionLinenumber: 1518
    functionLinenumberEnd: 1526
    functionName: check_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 8
    functionsReached:
    - query_async::<()>
    - Ok
    - Cmd::new
    - Cmd::arg
    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: 61
    functionLinenumber: 54
    functionLinenumberEnd: 79
    functionName: CmdArg::set_redirect
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - std::mem::take
    - Box::new
    - into
    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
    - std::mem::take
    - Self::as_mut
    - 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:275,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 79
    argCount: 3
    argNames:
    - result
    - request
    - retry_params
    argTypes:
    - OperationResult
    - PendingRequest<C>
    - '&RetryParams'
    constantsTouched: []
    func_position:
      end: 284
      start: 164
    functionDepth: 58
    functionLinenumber: 164
    functionLinenumberEnd: 284
    functionName: choose_response
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 1
    functionsReached:
    - '&RetryParams::wait_time_for_retry'
    - extract_error
    - send
    - Err
    - PollFlushAction::Reconnect
    - RedisResult::unwrap_err
    - saturating_add
    - retry_method
    - impl combine::Parser::clone
    - Ok
    - Self::iter
    - Option::map
    - impl combine::Parser::is_error_that_requires_action
    - position
    - HashSet::from
    - Some
    - clone
    - Self::extract_error
    - unwrap_err
    linkageType: ''
    returnType: (Option
    signature: 'pub(crate) fn choose_response<C>(result: OperationResult,mut request:
      PendingRequest<C>,retry_params: &RetryParams,) -> (Option<Retry<C>>, PollFlushAction)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Request::as_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:290,1
    - Dst: project
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:290,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:291,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:291,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:291,1
    - Dst: is_closed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:291,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:292,1
    - Dst: as_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:295,1
    - Dst: project
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:295,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:300,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:302,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:302,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:299,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:312,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:312,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:313,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 314
      start: 289
    functionDepth: 59
    functionLinenumber: 289
    functionLinenumberEnd: 314
    functionName: Request::poll
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - take
    - into
    - choose_response
    - as_mut
    - Request::as_mut
    - is_closed
    - Some
    - unwrap
    - as_ref
    - is_none
    - 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:339,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:339,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:343,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - request
    argTypes:
    - '&PendingRequest<C>'
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 63
    functionLinenumber: 333
    functionLinenumberEnd: 347
    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:355,1
    - Dst: ResultExpectation::External
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:359,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:361,1
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:361,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - retry
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 367
      start: 349
    functionDepth: 60
    functionLinenumber: 349
    functionLinenumberEnd: 367
    functionName: tests::request_and_receiver
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - into
    - crate::cmd
    - oneshot::channel
    - ResultExpectation::External
    - Arc::new
    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:372,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:372,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - val
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 373
      start: 371
    functionDepth: 58
    functionLinenumber: 371
    functionLinenumberEnd: 373
    functionName: tests::single_result
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - RedisResult::map
    - 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:376,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:376,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:376,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:376,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - error
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 58
    functionLinenumber: 375
    functionLinenumberEnd: 380
    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
    - RedisResult::unwrap
    - unwrap_err
    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:384,1
    - Dst: single_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:386,1
    - Dst: into
      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:391,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:393,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:394,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:405,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:408,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:410,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 417
      start: 383
    functionDepth: 61
    functionLinenumber: 383
    functionLinenumberEnd: 417
    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:
    - single_result
    - into
    - choose_response
    - request_and_receiver
    - err
    - RetryParams::default
    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:422,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:423,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:426,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:428,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:430,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:431,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:445,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:448,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:450,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 457
      start: 420
    functionDepth: 59
    functionLinenumber: 420
    functionLinenumberEnd: 457
    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:
    - single_result
    - into
    - choose_response
    - request_and_receiver
    - err
    - RetryParams::default
    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:461,1
    - Dst: single_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:463,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:464,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 470
      start: 460
    functionDepth: 61
    functionLinenumber: 460
    functionLinenumberEnd: 470
    functionName: tests::never_retry_on_fanout_operation_target
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - single_result
    - request_and_receiver
    - choose_response
    - RetryParams::default
    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:475,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:477,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:478,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:479,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:480,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:491,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:494,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:496,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 473
    functionDepth: 59
    functionLinenumber: 473
    functionLinenumberEnd: 503
    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:
    - single_result
    - into
    - choose_response
    - request_and_receiver
    - err
    - RetryParams::default
    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:507,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:509,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:510,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:510,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:511,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:512,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:523,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:526,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:528,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:528,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:530,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:541,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:542,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:542,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 552
      start: 506
    functionDepth: 61
    functionLinenumber: 506
    functionLinenumberEnd: 552
    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:
    - Err
    - into
    - choose_response
    - RedisError::from
    - request_and_receiver
    - err
    - RetryParams::default
    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: 56
    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: 58
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: Coord::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - Self::next
    - Self::into_iter
    - errors::invalid_type_error
    - FromRedisValue::from_redis_value_ref
    - 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/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: 64
    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: 57
    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: 62
    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: 62
    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: 56
    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: 56
    functionLinenumber: 235
    functionLinenumberEnd: 254
    functionName: RadiusOptions::num_of_args
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - Result::len
    - unwrap_or
    - is_some
    - map
    - as_ref
    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:
    - Ok
    - errors::invalid_type_error
    - RadiusSearchResult::parse_multi_values
    - String::from_utf8
    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: 56
    functionLinenumber: 288
    functionLinenumberEnd: 316
    functionName: RadiusSearchResult::parse_multi_values
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 1
    functionsReached:
    - Option::map
    - Err
    - into
    - Coord::from_redis_value
    - errors::invalid_type_error
    - Some
    - FromRedisValue::from_redis_value
    - next
    - Vec<Value>::into_iter
    - Value::Array
    - Self::map
    - Ok
    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: 56
    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: 62
    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: 58
    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: 58
    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: 59
    functionLinenumber: 85
    functionLinenumberEnd: 172
    functionName: implement_iterators
    functionSourceFile: /src/redis-rs/redis/src/commands/macros.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - cmd
    - arg
    - cursor_arg
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 391
    functionName: implement_commands
    functionSourceFile: /src/redis-rs/redis/src/commands/macros.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:34,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:35,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:35,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 56
    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: 56
    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: 4
    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:
    - StreamTrimStrategy::MinId
    - Some
    - 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: 56
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: StreamTrimStrategy::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::write_redis_args
    - 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: 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: 57
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    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:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - trim
    argTypes:
    - StreamTrimStrategy
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    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:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - deletion_policy
    argTypes:
    - StreamDeletionPolicy
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    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: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:210,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/commands/streams.rs:212,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:213,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/commands/streams.rs:215,1
    - Dst: Self::write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 218
      start: 205
    functionDepth: 56
    functionLinenumber: 205
    functionLinenumberEnd: 218
    functionName: StreamAddOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - write_redis_args
    - as_ref
    - 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/streams.rs:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    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: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    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:252,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:253,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:253,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 258
      start: 247
    functionDepth: 56
    functionLinenumber: 247
    functionLinenumberEnd: 258
    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:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ms
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    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:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ms_time
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    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:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - count
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    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: 305
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 305
    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: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    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:316,1
    - Dst: Self::into
      Src: /src/redis-rs/redis/src/commands/streams.rs:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - lastid
    argTypes:
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: StreamClaimOptions::with_lastid
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::into
    - Some
    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:327,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:328,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:328,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:331,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:332,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:332,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:335,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:336,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:336,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:339,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:342,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:345,1
    - Dst: Self::write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:346,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 54
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 348
      start: 322
    functionDepth: 56
    functionLinenumber: 322
    functionLinenumberEnd: 348
    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:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 380
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 380
    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:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 388
    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:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ms
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 394
    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:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 400
    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:408,1
    - Dst: ToRedisArgs::to_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:409,1
    - Dst: ToRedisArgs::to_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - group_name
    - consumer_name
    argTypes:
    - GN
    - CN
    constantsTouched: []
    func_position:
      end: 413
      start: 403
    functionDepth: 62
    functionLinenumber: 403
    functionLinenumberEnd: 413
    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:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - min_idle_time
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 419
    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:428,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:430,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:433,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:438,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:439,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:439,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:443,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:444,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:444,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/streams.rs:447,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:449,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:450,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:454,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:455,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:455,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 66
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 458
      start: 423
    functionDepth: 56
    functionLinenumber: 423
    functionLinenumberEnd: 458
    functionName: StreamReadOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - is_some
    - 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: 543
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 543
    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:710,1
    - Dst: Self::first_mut
      Src: /src/redis-rs/redis/src/commands/streams.rs:712,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:713,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/commands/streams.rs:713,1
    - Dst: Self::first_mut
      Src: /src/redis-rs/redis/src/commands/streams.rs:715,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:716,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/commands/streams.rs:716,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:720,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 721
      start: 709
    functionDepth: 62
    functionLinenumber: 709
    functionLinenumberEnd: 721
    functionName: StreamId::from_array_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::first_mut
    - StreamId::default
    - std::mem::take
    - from_redis_value
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_array_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/redis-rs/redis/src/commands/streams.rs:726,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/commands/streams.rs:727,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 730
      start: 725
    functionDepth: 58
    functionLinenumber: 725
    functionLinenumberEnd: 730
    functionName: StreamId::get
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - from_redis_value_ref
    - get
    - 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:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 735
      start: 733
    functionDepth: 60
    functionLinenumber: 733
    functionLinenumberEnd: 735
    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:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 740
      start: 738
    functionDepth: 60
    functionLinenumber: 738
    functionLinenumberEnd: 740
    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:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 745
      start: 743
    functionDepth: 61
    functionLinenumber: 743
    functionLinenumberEnd: 745
    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:753,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/streams.rs:756,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/streams.rs:756,1
    - Dst: invalid_type_error
      Src: /src/redis-rs/redis/src/commands/streams.rs:757,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/streams.rs:760,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:761,1
    - Dst: pop
      Src: /src/redis-rs/redis/src/commands/streams.rs:761,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:761,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/commands/streams.rs:763,1
    - Dst: pop
      Src: /src/redis-rs/redis/src/commands/streams.rs:766,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:766,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:767,1
    - Dst: pop
      Src: /src/redis-rs/redis/src/commands/streams.rs:767,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:767,1
    - Dst: invalid_type_error
      Src: /src/redis-rs/redis/src/commands/streams.rs:770,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:772,1
    - Dst: find
      Src: /src/redis-rs/redis/src/commands/streams.rs:772,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:773,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/commands/streams.rs:775,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/commands/streams.rs:777,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/streams.rs:783,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:784,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:786,1
    - Dst: std::iter::Chain::filter_map
      Src: /src/redis-rs/redis/src/commands/streams.rs:786,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:789,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:791,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:786,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/streams.rs:796,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/streams.rs:801,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:802,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:804,1
    - Dst: std::iter::Chain::flat_map
      Src: /src/redis-rs/redis/src/commands/streams.rs:804,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:807,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:807,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:804,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/streams.rs:816,1
    - Dst: invalid_type_error
      Src: /src/redis-rs/redis/src/commands/streams.rs:819,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:822,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 91
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 828
      start: 751
    functionDepth: 60
    functionLinenumber: 751
    functionLinenumberEnd: 828
    functionName: StreamAutoClaimReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - collect
    - find
    - std::iter::Chain::filter_map
    - Self::into_iter
    - iter
    - std::iter::Chain::flat_map
    - map
    - from_redis_value
    - Vec::new
    - unwrap
    - Ok
    - RedisResult::into_iter
    - is_empty
    - invalid_type_error
    - pop
    - len
    - 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:838,1
    - Dst: Result::clone
      Src: /src/redis-rs/redis/src/commands/streams.rs:838,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:839,1
    - Dst: Self::from_standard_rows
      Src: /src/redis-rs/redis/src/commands/streams.rs:839,1
    - Dst: from_redis_value::<SRClaimRows>
      Src: /src/redis-rs/redis/src/commands/streams.rs:844,1
    - Dst: Result::clone
      Src: /src/redis-rs/redis/src/commands/streams.rs:844,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:845,1
    - Dst: Self::from_claim_rows
      Src: /src/redis-rs/redis/src/commands/streams.rs:845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 849
      start: 836
    functionDepth: 63
    functionLinenumber: 836
    functionLinenumberEnd: 849
    functionName: StreamReadReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - from_redis_value::<SRRows>
    - from_redis_value::<SRClaimRows>
    - Result::clone
    - Self::from_standard_rows
    - Self::from_claim_rows
    - Ok
    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:854,1
    - Dst: std::iter::Chain::flat_map
      Src: /src/redis-rs/redis/src/commands/streams.rs:854,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:857,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:857,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:859,1
    - Dst: std::iter::Chain::flat_map
      Src: /src/redis-rs/redis/src/commands/streams.rs:859,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:862,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:862,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:859,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - rows
    argTypes:
    - SRRows
    constantsTouched: []
    func_position:
      end: 874
      start: 853
    functionDepth: 56
    functionLinenumber: 853
    functionLinenumberEnd: 874
    functionName: StreamReadReply::from_standard_rows
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - collect
    - Self::into_iter
    - std::iter::Chain::flat_map
    - map
    - 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:877,1
    - Dst: std::iter::Chain::flat_map
      Src: /src/redis-rs/redis/src/commands/streams.rs:877,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:880,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:880,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:882,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/commands/streams.rs:882,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:882,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - rows
    argTypes:
    - SRClaimRows
    constantsTouched: []
    func_position:
      end: 899
      start: 876
    functionDepth: 56
    functionLinenumber: 876
    functionLinenumberEnd: 899
    functionName: StreamReadReply::from_claim_rows
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - collect
    - Self::into_iter
    - std::iter::Chain::map
    - std::iter::Chain::flat_map
    - map
    - into_iter
    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:904,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:905,1
    - Dst: std::iter::Chain::flat_map
      Src: /src/redis-rs/redis/src/commands/streams.rs:905,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:908,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:908,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:905,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 917
      start: 903
    functionDepth: 58
    functionLinenumber: 903
    functionLinenumberEnd: 917
    functionName: StreamRangeReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - collect
    - Self::into_iter
    - std::iter::Chain::flat_map
    - map
    - from_redis_value
    - Ok
    - into_iter
    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:922,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:923,1
    - Dst: std::iter::Chain::flat_map
      Src: /src/redis-rs/redis/src/commands/streams.rs:923,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:926,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:926,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:923,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 935
      start: 921
    functionDepth: 58
    functionLinenumber: 921
    functionLinenumberEnd: 935
    functionName: StreamClaimReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - collect
    - Self::into_iter
    - std::iter::Chain::flat_map
    - map
    - from_redis_value
    - Ok
    - into_iter
    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:946,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:949,1
    - Dst: StreamPendingData::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:951,1
    - Dst: ok_or_else
      Src: /src/redis-rs/redis/src/commands/streams.rs:953,1
    - Dst: ParsingError::from
      Src: /src/redis-rs/redis/src/commands/streams.rs:954,1
    - Dst: ok_or_else
      Src: /src/redis-rs/redis/src/commands/streams.rs:959,1
    - Dst: ParsingError::from
      Src: /src/redis-rs/redis/src/commands/streams.rs:960,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:969,1
    - Dst: flatten
      Src: /src/redis-rs/redis/src/commands/streams.rs:969,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:969,1
    - Dst: ClusterConnection::parse
      Src: /src/redis-rs/redis/src/commands/streams.rs:974,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/commands/streams.rs:974,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:975,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:969,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:979,1
    - Dst: StreamPendingReply::Data
      Src: /src/redis-rs/redis/src/commands/streams.rs:979,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 981
      start: 945
    functionDepth: 58
    functionLinenumber: 945
    functionLinenumberEnd: 981
    functionName: StreamPendingReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - collect
    - ok_or_else
    - ParsingError::from
    - map
    - from_redis_value
    - ClusterConnection::parse
    - StreamPendingData::default
    - StreamPendingReply::Data
    - flatten
    - unwrap_or_default
    - Ok
    - into_iter
    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:986,1
    - Dst: String::from_utf8
      Src: /src/redis-rs/redis/src/commands/streams.rs:998,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/commands/streams.rs:998,1
    - Dst: String::from_utf8
      Src: /src/redis-rs/redis/src/commands/streams.rs:999,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/commands/streams.rs:999,1
    - Dst: push
      Src: /src/redis-rs/redis/src/commands/streams.rs:1002,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/commands/streams.rs:1009,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/commands/streams.rs:1013,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/commands/streams.rs:1019,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1023,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1024
      start: 985
    functionDepth: 62
    functionLinenumber: 985
    functionLinenumberEnd: 1024
    functionName: StreamPendingCountReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - to_vec
    - String::from_utf8
    - StreamPendingCountReply::default
    - fail
    - push
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1029,1
    - Dst: StreamInfoStreamReply::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1030,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1031,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1032,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1034,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1035,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1037,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1038,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1040,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1041,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1043,1
    - Dst: StreamId::from_array_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1044,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1046,1
    - Dst: StreamId::from_array_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1047,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1049,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1050
      start: 1028
    functionDepth: 58
    functionLinenumber: 1028
    functionLinenumberEnd: 1050
    functionName: StreamInfoStreamReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamId::from_array_value
    - from_redis_value
    - remove
    - StreamInfoStreamReply::default
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1055,1
    - Dst: StreamInfoConsumersReply::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1056,1
    - Dst: StreamInfoConsumer::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1058,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1059,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1060,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1062,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1063,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1065,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1066,1
    - Dst: push
      Src: /src/redis-rs/redis/src/commands/streams.rs:1068,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1071,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1072
      start: 1054
    functionDepth: 58
    functionLinenumber: 1054
    functionLinenumberEnd: 1072
    functionName: StreamInfoConsumersReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamInfoConsumersReply::default
    - from_redis_value
    - push
    - remove
    - StreamInfoConsumer::default
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1077,1
    - Dst: StreamInfoGroupsReply::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1078,1
    - Dst: StreamInfoGroup::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1080,1
    - Dst: remove
      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: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1084,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1085,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1087,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1088,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1090,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1091,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1093,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:1097,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1097,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1100,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:1104,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1104,1
    - Dst: push
      Src: /src/redis-rs/redis/src/commands/streams.rs:1107,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1109,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1110
      start: 1076
    functionDepth: 58
    functionLinenumber: 1076
    functionLinenumberEnd: 1110
    functionName: StreamInfoGroupsReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    - StreamInfoGroupsReply::default
    - from_redis_value
    - StreamInfoGroup::default
    - push
    - remove
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:1132,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:1133,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:1134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1136
      start: 1127
    functionDepth: 56
    functionLinenumber: 1127
    functionLinenumberEnd: 1136
    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:1160,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1161,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1162,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/streams.rs:1163,1
    - Dst: into
      Src: /src/redis-rs/redis/src/commands/streams.rs:1163,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/streams.rs:1165,1
    - Dst: into
      Src: /src/redis-rs/redis/src/commands/streams.rs:1165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1167
      start: 1157
    functionDepth: 0
    functionLinenumber: 1157
    functionLinenumberEnd: 1167
    functionName: XDelExStatusCode::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1189,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1190,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1191,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/streams.rs:1192,1
    - Dst: into
      Src: /src/redis-rs/redis/src/commands/streams.rs:1192,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/streams.rs:1194,1
    - Dst: into
      Src: /src/redis-rs/redis/src/commands/streams.rs:1194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1196
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1196
    functionName: XAckDelStatusCode::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/commands/streams.rs:1204,1
    - Dst: impl ToRedisArgs::write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:1206,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/commands/streams.rs:1208,1
    - Dst: iter_mut
      Src: /src/redis-rs/redis/src/commands/streams.rs:1210,1
    - Dst: for_each
      Src: /src/redis-rs/redis/src/commands/streams.rs:1210,1
    - Dst: Cmd::append
      Src: /src/redis-rs/redis/src/commands/streams.rs:1211,1
    - Dst: Cmd::push
      Src: /src/redis-rs/redis/src/commands/streams.rs:1212,1
    - Dst: Cmd::pop
      Src: /src/redis-rs/redis/src/commands/streams.rs:1215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - object
    - expected
    argTypes:
    - impl ToRedisArgs
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1218
      start: 1203
    functionDepth: 61
    functionLinenumber: 1203
    functionLinenumberEnd: 1218
    functionName: tests::assert_command_eq
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Cmd::pop
    - Cmd::push
    - Vec::new
    - Cmd::append
    - iter_mut
    - for_each
    - impl ToRedisArgs::write_redis_args
    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:1226,1
    - Dst: StreamAutoClaimReply::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1228,1
    - Dst: Result::unwrap_err
      Src: /src/redis-rs/redis/src/commands/streams.rs:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1225
    functionDepth: 61
    functionLinenumber: 1225
    functionLinenumberEnd: 1229
    functionName: tests::short_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap_err
    - Value::Array
    - StreamAutoClaimReply::from_redis_value
    linkageType: ''
    returnType: void
    signature: fn short_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/streams.rs:1233,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1239,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1232
    functionDepth: 57
    functionLinenumber: 1232
    functionLinenumberEnd: 1244
    functionName: tests::parses_none_claimed_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Value::Array
    - FromRedisValue::from_redis_value
    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:1248,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1274,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1247
    functionDepth: 57
    functionLinenumber: 1247
    functionLinenumberEnd: 1285
    functionName: tests::parses_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Value::Array
    - FromRedisValue::from_redis_value
    linkageType: ''
    returnType: void
    signature: fn parses_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/streams.rs:1289,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1314,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1314,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1318,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1318,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/commands/streams.rs:1318,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1288
    functionDepth: 57
    functionLinenumber: 1288
    functionLinenumberEnd: 1322
    functionName: tests::parses_v6_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - collect
    - iter
    - FromRedisValue::from_redis_value
    - map
    - as_str
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn parses_v6_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/streams.rs:1326,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1335,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1335,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1339,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1339,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/commands/streams.rs:1339,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1325
    functionDepth: 57
    functionLinenumber: 1325
    functionLinenumberEnd: 1344
    functionName: tests::parses_justid_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - collect
    - iter
    - FromRedisValue::from_redis_value
    - map
    - as_str
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn parses_justid_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/streams.rs:1348,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1357,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1357,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1361,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1361,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/commands/streams.rs:1361,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1347
    functionDepth: 57
    functionLinenumber: 1347
    functionLinenumberEnd: 1365
    functionName: tests::parses_v6_justid_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - collect
    - iter
    - FromRedisValue::from_redis_value
    - map
    - as_str
    - Value::Array
    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:1373,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1372
    functionDepth: 62
    functionLinenumber: 1372
    functionLinenumberEnd: 1376
    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:1380,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1379
    functionDepth: 62
    functionLinenumber: 1379
    functionLinenumberEnd: 1383
    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:1387,1
    - Dst: Self::limit
      Src: /src/redis-rs/redis/src/commands/streams.rs:1387,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1386
    functionDepth: 62
    functionLinenumber: 1386
    functionLinenumberEnd: 1390
    functionName: tests::maxlen_trim_limit
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::limit
    - StreamTrimOptions::maxlen
    - assert_command_eq
    linkageType: ''
    returnType: void
    signature: fn maxlen_trim_limit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/src/commands/streams.rs:1393,1
    - Dst: Self::limit
      Src: /src/redis-rs/redis/src/commands/streams.rs:1393,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1392
    functionDepth: 62
    functionLinenumber: 1392
    functionLinenumberEnd: 1396
    functionName: tests::minid_trim_limit
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::limit
    - StreamTrimOptions::minid
    - assert_command_eq
    linkageType: ''
    returnType: void
    signature: fn minid_trim_limit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1404,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1403
    functionDepth: 62
    functionLinenumber: 1403
    functionLinenumberEnd: 1407
    functionName: tests::the_default
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamAddOptions::default
    - assert_command_eq
    linkageType: ''
    returnType: void
    signature: fn the_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1411,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/src/commands/streams.rs:1411,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/src/commands/streams.rs:1412,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1410
    functionDepth: 62
    functionLinenumber: 1410
    functionLinenumberEnd: 1415
    functionName: tests::with_maxlen_trim
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamTrimStrategy::maxlen
    - StreamAddOptions::default
    - assert_command_eq
    - Self::trim
    linkageType: ''
    returnType: void
    signature: fn with_maxlen_trim()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1419,1
    - Dst: Self::nomkstream
      Src: /src/redis-rs/redis/src/commands/streams.rs:1419,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1418
    functionDepth: 62
    functionLinenumber: 1418
    functionLinenumberEnd: 1422
    functionName: tests::with_nomkstream
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamAddOptions::default
    - Self::nomkstream
    - assert_command_eq
    linkageType: ''
    returnType: void
    signature: fn with_nomkstream()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1426,1
    - Dst: Self::nomkstream
      Src: /src/redis-rs/redis/src/commands/streams.rs:1426,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/src/commands/streams.rs:1426,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/src/commands/streams.rs:1428,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1425
    functionDepth: 62
    functionLinenumber: 1425
    functionLinenumberEnd: 1431
    functionName: tests::with_nomkstream_and_maxlen_trim
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamTrimStrategy::maxlen
    - StreamAddOptions::default
    - Self::nomkstream
    - Self::trim
    - assert_command_eq
    linkageType: ''
    returnType: void
    signature: fn with_nomkstream_and_maxlen_trim()
  - 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:3040,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/commands/mod.rs:3041,1
    - Dst: get_message
      Src: /src/redis-rs/redis/src/commands/mod.rs:3044,1
    - Dst: func
      Src: /src/redis-rs/redis/src/commands/mod.rs:3045,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/mod.rs:3047,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - channels
    - func
    argTypes:
    - C
    - F
    constantsTouched: []
    func_position:
      end: 3050
      start: 3035
    functionDepth: 64
    functionLinenumber: 3035
    functionLinenumberEnd: 3050
    functionName: Connection::subscribe
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 2
    functionsReached:
    - get_message
    - Connection::as_pubsub
    - func
    - subscribe
    - Ok
    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:3057,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/src/commands/mod.rs:3058,1
    - Dst: get_message
      Src: /src/redis-rs/redis/src/commands/mod.rs:3061,1
    - Dst: func
      Src: /src/redis-rs/redis/src/commands/mod.rs:3062,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/mod.rs:3064,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - patterns
    - func
    argTypes:
    - P
    - F
    constantsTouched: []
    func_position:
      end: 3067
      start: 3052
    functionDepth: 64
    functionLinenumber: 3052
    functionLinenumberEnd: 3067
    functionName: Connection::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 1
    functionsReached:
    - get_message
    - psubscribe
    - Connection::as_pubsub
    - func
    - Ok
    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:3097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 3099
      start: 3096
    functionDepth: 0
    functionLinenumber: 3096
    functionLinenumberEnd: 3099
    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:3103,1
    - Dst: into
      Src: /src/redis-rs/redis/src/commands/mod.rs:3103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 3105
      start: 3102
    functionDepth: 0
    functionLinenumber: 3102
    functionLinenumberEnd: 3105
    functionName: ScanOptions::with_pattern
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - into
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_pattern(mut self, p: impl Into<String>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3109,1
    - Dst: TlsFilePaths::into
      Src: /src/redis-rs/redis/src/commands/mod.rs:3109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 3111
      start: 3108
    functionDepth: 0
    functionLinenumber: 3108
    functionLinenumberEnd: 3111
    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:3120,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3121,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3125,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3126,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3130,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3133
      start: 3115
    functionDepth: 56
    functionLinenumber: 3115
    functionLinenumberEnd: 3133
    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:3137,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3140,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3147
      start: 3135
    functionDepth: 0
    functionLinenumber: 3135
    functionLinenumberEnd: 3147
    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:3181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 3183
      start: 3180
    functionDepth: 0
    functionLinenumber: 3180
    functionLinenumberEnd: 3183
    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:3187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - isize
    constantsTouched: []
    func_position:
      end: 3189
      start: 3186
    functionDepth: 0
    functionLinenumber: 3186
    functionLinenumberEnd: 3189
    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:3193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 3195
      start: 3192
    functionDepth: 0
    functionLinenumber: 3192
    functionLinenumberEnd: 3195
    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:3204,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3205,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3209,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3210,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3214,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3217
      start: 3199
    functionDepth: 56
    functionLinenumber: 3199
    functionLinenumberEnd: 3217
    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:3221,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3224,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3231
      start: 3219
    functionDepth: 0
    functionLinenumber: 3219
    functionLinenumberEnd: 3231
    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:3252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3253
      start: 3244
    functionDepth: 56
    functionLinenumber: 3244
    functionLinenumberEnd: 3253
    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: 3286
      start: 3281
    functionDepth: 0
    functionLinenumber: 3281
    functionLinenumberEnd: 3286
    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:3293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - Db2
    constantsTouched: []
    func_position:
      end: 3296
      start: 3291
    functionDepth: 0
    functionLinenumber: 3291
    functionLinenumberEnd: 3296
    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: 3302
      start: 3299
    functionDepth: 0
    functionLinenumber: 3299
    functionLinenumberEnd: 3302
    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:3311,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3312,1
    - Dst: i64::to_string
      Src: /src/redis-rs/redis/src/commands/mod.rs:3312,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3312,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3317
      start: 3306
    functionDepth: 56
    functionLinenumber: 3306
    functionLinenumberEnd: 3317
    functionName: CopyOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - String::as_bytes
    - write_arg
    - i64::to_string
    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:3359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - existence_check
    argTypes:
    - ExistenceCheck
    constantsTouched: []
    func_position:
      end: 3361
      start: 3358
    functionDepth: 0
    functionLinenumber: 3358
    functionLinenumberEnd: 3361
    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:3365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value_comparison
    argTypes:
    - ValueComparison
    constantsTouched: []
    func_position:
      end: 3367
      start: 3364
    functionDepth: 0
    functionLinenumber: 3364
    functionLinenumberEnd: 3367
    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: 3373
      start: 3370
    functionDepth: 0
    functionLinenumber: 3370
    functionLinenumberEnd: 3373
    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:3377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expiration
    argTypes:
    - SetExpiry
    constantsTouched: []
    func_position:
      end: 3379
      start: 3376
    functionDepth: 0
    functionLinenumber: 3376
    functionLinenumberEnd: 3379
    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:3388,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3391,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3394,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3399
      start: 3383
    functionDepth: 57
    functionLinenumber: 3383
    functionLinenumberEnd: 3399
    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:3425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - existence_check
    argTypes:
    - ExistenceCheck
    constantsTouched: []
    func_position:
      end: 3427
      start: 3424
    functionDepth: 0
    functionLinenumber: 3424
    functionLinenumberEnd: 3427
    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:3431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expiration
    argTypes:
    - SetExpiry
    constantsTouched: []
    func_position:
      end: 3433
      start: 3430
    functionDepth: 0
    functionLinenumber: 3430
    functionLinenumberEnd: 3433
    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:3442,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3447
      start: 3437
    functionDepth: 57
    functionLinenumber: 3437
    functionLinenumberEnd: 3447
    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: 3473
      start: 3470
    functionDepth: 0
    functionLinenumber: 3470
    functionLinenumberEnd: 3473
    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:3482,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3486
      start: 3477
    functionDepth: 56
    functionLinenumber: 3477
    functionLinenumberEnd: 3486
    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:3503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - field_existence_check
    argTypes:
    - FieldExistenceCheck
    constantsTouched: []
    func_position:
      end: 3505
      start: 3502
    functionDepth: 0
    functionLinenumber: 3502
    functionLinenumberEnd: 3505
    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:3509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expiration
    argTypes:
    - SetExpiry
    constantsTouched: []
    func_position:
      end: 3511
      start: 3508
    functionDepth: 0
    functionLinenumber: 3508
    functionLinenumberEnd: 3511
    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:3520,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3526
      start: 3515
    functionDepth: 57
    functionLinenumber: 3515
    functionLinenumberEnd: 3526
    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:3536,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3537,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/commands/mod.rs:3537,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3537,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3540,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3541,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/commands/mod.rs:3541,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3541,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3544,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3545,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/commands/mod.rs:3545,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3545,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3548,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3549,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/commands/mod.rs:3549,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3549,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3555
      start: 3530
    functionDepth: 56
    functionLinenumber: 3530
    functionLinenumberEnd: 3555
    functionName: Expiry::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - to_string
    - String::as_bytes
    - 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:3575,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3581
      start: 3569
    functionDepth: 56
    functionLinenumber: 3569
    functionLinenumberEnd: 3581
    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:3598,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/commands/mod.rs:3599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3601
      start: 3596
    functionDepth: 62
    functionLinenumber: 3596
    functionLinenumberEnd: 3601
    functionName: SortedSetAddOptions::add_only
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 1
    functionsReached:
    - Default::default
    - Some
    linkageType: ''
    returnType: Self
    signature: pub fn add_only() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3607,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/commands/mod.rs:3609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conditional_update
    argTypes:
    - Option<UpdateCheck>
    constantsTouched: []
    func_position:
      end: 3611
      start: 3605
    functionDepth: 62
    functionLinenumber: 3605
    functionLinenumberEnd: 3611
    functionName: SortedSetAddOptions::update_only
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 1
    functionsReached:
    - Default::default
    - Some
    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:3618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conditional_update
    argTypes:
    - Option<UpdateCheck>
    constantsTouched: []
    func_position:
      end: 3620
      start: 3615
    functionDepth: 62
    functionLinenumber: 3615
    functionLinenumberEnd: 3620
    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: 3627
      start: 3624
    functionDepth: 0
    functionLinenumber: 3624
    functionLinenumberEnd: 3627
    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: 3634
      start: 3631
    functionDepth: 0
    functionLinenumber: 3631
    functionLinenumberEnd: 3634
    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:3643,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3647,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3650,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3653,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3655
      start: 3638
    functionDepth: 57
    functionLinenumber: 3638
    functionLinenumberEnd: 3655
    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:3661,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3662,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/commands/mod.rs:3664,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3668,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/commands/mod.rs:3668,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3668,1
    - Dst: '&''static str::as_bytes'
      Src: /src/redis-rs/redis/src/commands/mod.rs:3668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&RedisConnectionInfo'
    constantsTouched: []
    func_position:
      end: 3672
      start: 3660
    functionDepth: 58
    functionLinenumber: 3660
    functionLinenumberEnd: 3672
    functionName: resp3_hello
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 1
    functionsReached:
    - '&mut Cmd::arg'
    - arg
    - as_ref
    - Cmd::arg
    - '&''static str::as_bytes'
    - cmd::cmd
    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:
    - Self::into
    - Some
    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: 56
    functionLinenumber: 93
    functionLinenumberEnd: 128
    functionName: VSimOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - as_bytes
    - 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: 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: 57
    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: 56
    functionLinenumber: 186
    functionLinenumberEnd: 204
    functionName: VectorAddInput::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - write_redis_args
    - writer_for_next_arg
    - unwrap
    - impl io::Write + '_::write_all
    - to_le_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/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: 56
    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: 56
    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: 56
    functionLinenumber: 387
    functionLinenumberEnd: 409
    functionName: VectorSimilaritySearchInput::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - write_redis_args
    - writer_for_next_arg
    - unwrap
    - impl io::Write + '_::write_all
    - to_le_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: 171
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 171
    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: 56
    functionLinenumber: 78
    functionLinenumberEnd: 121
    functionName: Rule::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - as_bytes
    - 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: 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: 58
    functionLinenumber: 168
    functionLinenumberEnd: 361
    functionName: AclInfo::handle_pair
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::split_whitespace
    - Rule::RemoveCommand
    - Rule::Pattern
    - strip_prefix
    - TlsFilePaths::len
    - iter
    - String::from_utf8_lossy
    - map
    - as_str
    - std::str::from_utf8
    - String::from_redis_value_ref
    - trim
    - Err
    - into_owned
    - not_convertible_error
    - Rule::Other
    - impl combine::Parser::as_sequence
    - "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>>"
    - Rule::RemoveCategory
    - "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<_, _>>"
    - flatten
    - into_iter
    - TlsFilePaths::trim
    - TlsFilePaths::strip_prefix
    - to_owned
    - chain
    - Rule::AddHashedPass
    - starts_with
    - FromRedisValue::from_redis_value_ref
    - as_slice
    - "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>>"
    - Ok
    - TlsFilePaths::ends_with
    - "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>>"
    - Option::ok_or_else
    - "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>>"
    - collect
    - split_terminator
    - "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>>"
    - "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>>"
    - Rule::AddCommand
    - TlsFilePaths::to_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<_,\
      \ _>>"
    - TlsFilePaths::as_str
    - Rule::Channel
    - TlsFilePaths::starts_with
    - Rule::AddCategory
    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: 62
    functionLinenumber: 364
    functionLinenumberEnd: 386
    functionName: AclInfo::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - Err
    - not_convertible_error
    - Result::as_sequence
    - Ok
    - chunks
    - Self::handle_pair
    - AclInfo::default
    - len
    - Result::as_map_iter
    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: 56
    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: 64
    functionLinenumber: 441
    functionLinenumberEnd: 486
    functionName: tests::test_from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - Value::Array
    - AclInfo::from_redis_value_ref
    - Result::expect
    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: 58
    functionLinenumber: 23
    functionLinenumberEnd: 50
    functionName: run_multi
    functionSourceFile: /src/redis-rs/redis/examples/async-connection-loss.rs
    functionUses: 0
    functionsReached:
    - future::join3
    - redis::cmd
    - redis::Cmd::query_async
    - Duration::from_millis
    - Duration::from_secs
    - tokio::time::interval
    - unwrap
    - tick
    - checked_duration_since
    - C::clone
    - Instant::now
    - Ok
    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: 63
    functionLinenumber: 37
    functionLinenumberEnd: 118
    functionName: demo_group_reads
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 0
    functionsReached:
    - random_wait_millis
    - xgroup_create_mkstream
    - collect
    - Duration::from_millis
    - add_records
    - RedisResult::expect
    - RedisResult::iter
    - map
    - clone
    - expect
    - thread::spawn
    - read_group_records
    - push
    - thread::sleep
    - xack
    - Result::get_connection
    - join
    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: 42
    functionLinenumber: 122
    functionLinenumberEnd: 167
    functionName: add_records
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 1
    functionsReached:
    - get_connection
    - thrifty_rand
    - RedisResult::expect
    - StreamMaxlen::Approx
    - xadd_maxlen
    - arbitrary_value
    - Ok
    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:
    - SystemTime::now
    - as_nanos
    - duration_since
    - expect
    linkageType: ''
    returnType: u8
    signature: fn thrifty_rand() -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: thrifty_rand
      Src: /src/redis-rs/redis/examples/streams.rs:182,1
    - Dst: thrifty_rand
      Src: /src/redis-rs/redis/examples/streams.rs:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - slowness
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: random_wait_millis
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 1
    functionsReached:
    - thrifty_rand
    linkageType: ''
    returnType: u64
    signature: 'fn random_wait_millis(slowness: u8) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection
      Src: /src/redis-rs/redis/examples/streams.rs:207,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/examples/streams.rs:207,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/examples/streams.rs:209,1
    - Dst: Self::block
      Src: /src/redis-rs/redis/examples/streams.rs:209,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/examples/streams.rs:216,1
    - Dst: expect
      Src: /src/redis-rs/redis/examples/streams.rs:216,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/streams.rs:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - client
    argTypes:
    - '&redis::Client'
    constantsTouched: []
    func_position:
      end: 235
      start: 206
    functionDepth: 42
    functionLinenumber: 206
    functionLinenumberEnd: 235
    functionName: read_records
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - Self::block
    - RedisResult::expect
    - StreamReadOptions::default
    - xread_options
    - expect
    - Ok
    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: 42
    functionLinenumber: 243
    functionLinenumberEnd: 260
    functionName: read_group_records
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 1
    functionsReached:
    - get_connection
    - Self::block
    - consumer_name
    - RedisResult::expect
    - StreamReadOptions::default
    - Self::group
    - Self::count
    - xread_options
    - expect
    - Ok
    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: 42
    functionLinenumber: 262
    functionLinenumberEnd: 271
    functionName: clean_up
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - RedisResult::expect
    - xtrim
    - StreamMaxlen::Equals
    - expect
    - xgroup_destroy
    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: 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: 63
    functionLinenumber: 4
    functionLinenumberEnd: 30
    functionName: test_cmd
    functionSourceFile: /src/redis-rs/redis/examples/async-multiplexed.rs
    functionUses: 1
    functionsReached:
    - '&mut Cmd::arg'
    - redis::cmd
    - Self::clone
    - redis::Cmd::arg
    - '&mut Cmd::exec_async'
    - exec_async
    - RedisResult::map
    - '&mut Cmd::query_async'
    - Ok
    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: 58
    functionLinenumber: 10
    functionLinenumberEnd: 39
    functionName: do_print_max_entry_limits
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - query
    - redis::cmd
    - redis::Cmd::arg
    - Ok
    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: 58
    functionLinenumber: 44
    functionLinenumberEnd: 73
    functionName: do_show_scanning
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - iter::<i32>
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Cmd::cursor_arg'
    - Pipeline::cmd
    - Pipeline::exec
    - ignore
    - Cmd::arg
    - Ok
    - redis::pipe
    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: 58
    functionLinenumber: 76
    functionLinenumberEnd: 116
    functionName: do_atomic_increment_lowlevel
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - '&mut Cmd::exec'
    - query
    - redis::cmd
    - '&mut Cmd::query'
    - redis::Cmd::arg
    - redis::Pipeline::atomic
    - '&mut Pipeline::cmd'
    - arg
    - exec
    - ignore
    - cmd
    - Ok
    - 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: 59
    functionLinenumber: 119
    functionLinenumberEnd: 138
    functionName: do_atomic_increment
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - query
    - '&mut redis::Connection::set'
    - '&mut redis::Connection::get'
    - Pipeline::set
    - get
    - ignore
    - redis::transaction
    - Ok
    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: 42
    functionLinenumber: 141
    functionLinenumberEnd: 157
    functionName: do_redis_code
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - redis::Client::open
    - do_show_scanning
    - do_atomic_increment_lowlevel
    - do_print_max_entry_limits
    - do_atomic_increment
    - Ok
    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:18,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:20,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:21,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:22,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:22,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:22,1
    - Dst: exec
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:22,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:22,1
    - Dst: std::hint::black_box
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:23,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:27,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:28,1
    - Dst: std::hint::black_box
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:28,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:28,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:28,1
    - Dst: arg(key).query::<isize>
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:28,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:28,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:32,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:32,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:32,1
    - Dst: exec
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:32,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:32,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::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: bench_function
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:35,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:36,1
    - Dst: set_and_del
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:37,1
    - Dst: std::hint::black_box
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:38,1
    - Dst: finish
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 69
    argCount: 2
    argNames:
    - c
    - con
    argTypes:
    - '&mut Criterion'
    - '&mut redis::cluster::ClusterConnection'
    constantsTouched: []
    func_position:
      end: 43
      start: 15
    functionDepth: 55
    functionLinenumber: 15
    functionLinenumberEnd: 43
    functionName: bench_set_get_and_del
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - '&mut Cmd::exec'
    - i64::iter
    - redis::cmd
    - redis::Cmd::arg
    - arg(key).query::<isize>
    - set_and_del
    - benchmark_group
    - bench_function
    - unwrap
    - exec
    - RedisResult::unwrap
    - std::hint::black_box
    - 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:46,1
    - Dst: throughput
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:47,1
    - Dst: Throughput::Elements
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:47,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:49,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:51,1
    - Dst: redis::cluster::cluster_pipe
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:55,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:57,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:57,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:60,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:61,1
    - Dst: build_pipeline
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:62,1
    - Dst: std::hint::black_box
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:63,1
    - Dst: redis::cluster::cluster_pipe
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:67,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:69,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:69,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:71,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:72,1
    - Dst: Pipeline::exec
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:73,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:73,1
    - Dst: std::hint::black_box
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:74,1
    - Dst: finish
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 61
    argCount: 2
    argNames:
    - c
    - con
    argTypes:
    - '&mut Criterion'
    - '&mut redis::cluster::ClusterConnection'
    constantsTouched: []
    func_position:
      end: 79
      start: 45
    functionDepth: 61
    functionLinenumber: 45
    functionLinenumberEnd: 79
    functionName: bench_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster.rs
    functionUses: 0
    functionsReached:
    - RedisServer::push
    - throughput
    - i64::iter
    - benchmark_group
    - bench_function
    - Vec::new
    - Pipeline::set
    - Pipeline::exec
    - Throughput::Elements
    - ignore
    - std::hint::black_box
    - redis::cluster::cluster_pipe
    - RedisResult::unwrap
    - finish
    - build_pipeline
    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: 54
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: bench_cluster_setup
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Result::async_connection
    - current_thread_runtime
    - TestClusterContext::new_with_config
    - tokio::runtime::Runtime::block_on
    - bench_cluster_async
    - RedisClusterConfiguration::single_replica_config
    - Result::wait_for_cluster_up
    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:93,1
    - Dst: RedisClusterConfiguration::single_replica_config
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:94,1
    - Dst: read_from_replicas
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:95,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:97,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:99,1
    - Dst: bench_set_get_and_del
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:100,1
    - Dst: bench_pipeline
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 53
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: bench_cluster_read_from_replicas_setup
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster.rs
    functionUses: 0
    functionsReached:
    - read_from_replicas
    - TestClusterContext::new_with_config_and_builder
    - Result::connection
    - RedisClusterConfiguration::single_replica_config
    - bench_pipeline
    - Result::wait_for_cluster_up
    - bench_set_get_and_del
    linkageType: ''
    returnType: void
    signature: 'fn bench_cluster_read_from_replicas_setup(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: benchmark_group
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:20,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:21,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:22,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:23,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:26,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:26,1
    - Dst: '&mut 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: 55
    functionLinenumber: 15
    functionLinenumberEnd: 78
    functionName: bench_cluster_async
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster_async.rs
    functionUses: 1
    functionsReached:
    - zip
    - RedisResult::iter
    - map
    - bench_function
    - unwrap
    - tokio::runtime::Runtime::block_on
    - Pipeline::set
    - std::hint::black_box
    - .num_parallel).map(|_| con.clone()).collect::<Vec<_>>
    - i64::iter
    - redis::cmd
    - '&mut redis::cluster_async::ClusterConnection::clone'
    - '&mut Cmd::exec_async'
    - benchmark_group
    - finish
    - Pipeline::exec_async
    - '&str::to_string'
    - exec_async
    - ignore
    - '&mut Cmd::query_async'
    - Ok
    - '&mut Cmd::arg'
    - try_for_each
    - Cmd::exec_async
    - redis::Cmd::arg
    - collect
    - "iter()\n                        .zip(&mut connections)\n                  \
      \      .map(|(cmd, con)| cmd.exec_async(con))\n                        .collect::<stream::FuturesUnordered<_>>"
    - clone
    - Ok::<_, RedisError>
    - redis::pipe
    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:17,1
    - Dst: Bernoulli::from_ratio
      Src: /src/redis-rs/redis/benches/bench_cache.rs:18,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cache.rs:18,1
    - Dst: sample_iter
      Src: /src/redis-rs/redis/benches/bench_cache.rs:19,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/benches/bench_cache.rs:20,1
    - Dst: take
      Src: /src/redis-rs/redis/benches/bench_cache.rs:19,1
    - Dst: RedisResult::push
      Src: /src/redis-rs/redis/benches/bench_cache.rs:24,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_cache.rs:24,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_cache.rs:24,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/benches/bench_cache.rs:24,1
    - Dst: RedisResult::push
      Src: /src/redis-rs/redis/benches/bench_cache.rs:26,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_cache.rs:27,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_cache.rs:27,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/benches/bench_cache.rs:27,1
    - Dst: random_range
      Src: /src/redis-rs/redis/benches/bench_cache.rs:29,1
    - Dst: clone
      Src: /src/redis-rs/redis/benches/bench_cache.rs:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 3
    argNames:
    - key
    - total_command
    - total_read
    argTypes:
    - String
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 35
      start: 15
    functionDepth: 55
    functionLinenumber: 15
    functionLinenumberEnd: 35
    functionName: generate_commands
    functionSourceFile: /src/redis-rs/redis/benches/bench_cache.rs
    functionUses: 0
    functionsReached:
    - take
    - '&mut Cmd::arg'
    - redis::cmd
    - rand::rng
    - redis::Cmd::arg
    - random_range
    - clone
    - unwrap
    - '&mut Cmd::clone'
    - Bernoulli::from_ratio
    - sample_iter
    - RedisResult::push
    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:43,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/benches/bench_cache.rs:45,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/benches/bench_cache.rs:45,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cache.rs:45,1
    - Dst: TestContext::multiplexed_async_connection_tokio
      Src: /src/redis-rs/redis/benches/bench_cache.rs:49,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cache.rs:49,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/benches/bench_cache.rs:52,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/benches/bench_cache.rs:53,1
    - Dst: clone
      Src: /src/redis-rs/redis/benches/bench_cache.rs:55,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/benches/bench_cache.rs:57,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/benches/bench_cache.rs:57,1
    - Dst: generate_commands
      Src: /src/redis-rs/redis/benches/bench_cache.rs:58,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/benches/bench_cache.rs:63,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cache.rs:63,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cache.rs:68,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: 70
      start: 37
    functionDepth: 57
    functionLinenumber: 37
    functionLinenumberEnd: 70
    functionName: benchmark_executer
    functionSourceFile: /src/redis-rs/redis/benches/bench_cache.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - RedisServer::push
    - TestContext::multiplexed_async_connection_tokio
    - rand::rng
    - CacheConfig::new
    - Cmd::query_async
    - clone
    - Vec::new
    - unwrap
    - TestContext::async_connection_with_cache_config
    - generate_commands
    - tokio::spawn
    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:80,1
    - Dst: worker_threads
      Src: /src/redis-rs/redis/benches/bench_cache.rs:80,1
    - Dst: enable_all
      Src: /src/redis-rs/redis/benches/bench_cache.rs:80,1
    - Dst: build
      Src: /src/redis-rs/redis/benches/bench_cache.rs:80,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cache.rs:80,1
    - Dst: '&mut Bencher::iter'
      Src: /src/redis-rs/redis/benches/bench_cache.rs:85,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_cache.rs:86,1
    - Dst: benchmark_executer
      Src: /src/redis-rs/redis/benches/bench_cache.rs:86,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: 93
      start: 72
    functionDepth: 50
    functionLinenumber: 72
    functionLinenumberEnd: 93
    functionName: prepare_benchmark
    functionSourceFile: /src/redis-rs/redis/benches/bench_cache.rs
    functionUses: 0
    functionsReached:
    - tokio::runtime::Builder::new_multi_thread
    - build
    - benchmark_executer
    - worker_threads
    - unwrap
    - enable_all
    - tokio::runtime::Runtime::block_on
    - '&mut Bencher::iter'
    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: env::var
      Src: /src/redis-rs/redis/benches/bench_cache.rs:96,1
    - Dst: String::unwrap_or_default
      Src: /src/redis-rs/redis/benches/bench_cache.rs:96,1
    - Dst: env::var
      Src: /src/redis-rs/redis/benches/bench_cache.rs:99,1
    - Dst: String::unwrap_or_default
      Src: /src/redis-rs/redis/benches/bench_cache.rs:99,1
    - Dst: clone
      Src: /src/redis-rs/redis/benches/bench_cache.rs:108,1
    - Dst: benchmark_group
      Src: /src/redis-rs/redis/benches/bench_cache.rs:110,1
    - Dst: throughput
      Src: /src/redis-rs/redis/benches/bench_cache.rs:111,1
    - Dst: Throughput::Elements
      Src: /src/redis-rs/redis/benches/bench_cache.rs:111,1
    - Dst: sample_size
      Src: /src/redis-rs/redis/benches/bench_cache.rs:114,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_cache.rs:117,1
    - Dst: prepare_benchmark
      Src: /src/redis-rs/redis/benches/bench_cache.rs:118,1
    - Dst: finish
      Src: /src/redis-rs/redis/benches/bench_cache.rs:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 130
      start: 95
    functionDepth: 63
    functionLinenumber: 95
    functionLinenumberEnd: 130
    functionName: bench_cache
    functionSourceFile: /src/redis-rs/redis/benches/bench_cache.rs
    functionUses: 0
    functionsReached:
    - throughput
    - String::unwrap_or_default
    - benchmark_group
    - env::var
    - clone
    - sample_size
    - bench_function
    - Throughput::Elements
    - prepare_benchmark
    - finish
    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: 57
    functionLinenumber: 10
    functionLinenumberEnd: 20
    functionName: bench_simple_getsetdel
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - '&mut Cmd::exec'
    - i64::iter
    - redis::cmd
    - '&mut Cmd::query'
    - redis::Cmd::arg
    - unwrap
    - exec
    - TestContext::connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn bench_simple_getsetdel(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/benches/bench_basic.rs:23,1
    - Dst: current_thread_runtime
      Src: /src/redis-rs/redis/benches/bench_basic.rs:24,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_basic.rs:25,1
    - Dst: 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: 57
    functionLinenumber: 22
    functionLinenumberEnd: 42
    functionName: bench_simple_getsetdel_async
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - TestContext::async_connection
    - i64::iter
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Cmd::exec_async'
    - current_thread_runtime
    - exec_async
    - unwrap
    - tokio::runtime::Runtime::block_on
    - Ok::<_, RedisError>
    - '&mut Cmd::query_async'
    linkageType: ''
    returnType: void
    signature: 'fn bench_simple_getsetdel_async(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/benches/bench_basic.rs:45,1
    - Dst: 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: 57
    functionLinenumber: 44
    functionLinenumberEnd: 63
    functionName: bench_simple_getsetdel_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - query
    - i64::iter
    - redis::Cmd::arg
    - arg
    - unwrap
    - redis::Pipeline::cmd
    - TestContext::connection
    - ignore
    - cmd
    - 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: 57
    functionLinenumber: 65
    functionLinenumberEnd: 83
    functionName: bench_simple_getsetdel_pipeline_precreated
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - '&mut Cmd::arg'
    - i64::iter
    - redis::Cmd::arg
    - Pipeline::cmd
    - arg
    - Pipeline::query
    - TestContext::connection
    - ignore
    - RedisResult::unwrap
    - cmd
    - 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: 59
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: long_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - Pipeline::set
    - ignore
    - 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: 57
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: bench_long_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - i64::iter
    - Pipeline::exec
    - TestContext::connection
    - RedisResult::unwrap
    - long_pipeline
    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: 57
    functionLinenumber: 107
    functionLinenumberEnd: 119
    functionName: bench_async_long_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - TestContext::async_connection
    - i64::iter
    - current_thread_runtime
    - unwrap
    - tokio::runtime::Runtime::block_on
    - long_pipeline
    - 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: 57
    functionLinenumber: 121
    functionLinenumberEnd: 135
    functionName: bench_multiplexed_async_long_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - TestContext::multiplexed_async_connection_tokio
    - i64::iter
    - current_thread_runtime
    - unwrap
    - tokio::runtime::Runtime::block_on
    - long_pipeline
    - 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: 57
    functionLinenumber: 137
    functionLinenumberEnd: 164
    functionName: bench_multiplexed_async_implicit_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - ".PIPELINE_QUERIES)\n        .map(|_| con.clone())\n        .collect::<Vec<_>>"
    - zip
    - RedisResult::iter
    - map
    - current_thread_runtime
    - unwrap
    - tokio::runtime::Runtime::block_on
    - TestContext::multiplexed_async_connection_tokio
    - redis::cmd
    - i64::iter
    - "iter()\n                    .zip(&mut connections)\n                    .map(|(cmd,\
      \ con)| cmd.exec_async(con))\n                    .collect::<stream::FuturesUnordered<_>>"
    - Ok
    - '&mut Cmd::arg'
    - try_for_each
    - Cmd::exec_async
    - redis::Cmd::arg
    - collect
    - clone
    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:
    - throughput
    - benchmark_group
    - 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: 55
    functionLinenumber: 194
    functionLinenumberEnd: 204
    functionName: bench_encode_small
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::arg'
    - i64::iter
    - redis::cmd
    - arg
    - Cmd::get_packed_command
    - Cmd::arg
    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: 55
    functionLinenumber: 206
    functionLinenumberEnd: 215
    functionName: bench_encode_integer
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - Pipeline::get_packed_pipeline
    - Pipeline::set
    - ignore
    - redis::pipe
    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: 55
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: bench_encode_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - Pipeline::get_packed_pipeline
    - Pipeline::set
    - ignore
    - redis::pipe
    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: 55
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: bench_encode_pipeline_nested
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - Pipeline::mset
    - Pipeline::get_packed_pipeline
    - ignore
    - redis::pipe
    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:
    - finish
    - benchmark_group
    - bench_function
    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: 55
    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: 61
    functionLinenumber: 258
    functionLinenumberEnd: 276
    functionName: bench_decode
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - support::encode_value
    - benchmark_group
    - bench_function
    - Vec::new
    - bench_decode_simple
    - io::Result::unwrap
    - Value::Array
    - finish
    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: 58
    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:
  - String::into_redis_value
  - '&str::into_redis_value'
  - bytes::Bytes::into_redis_value
  - Vec::into_redis_value
  - Value::into_redis_value
  - i64::into_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::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_replica_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:
  - b::a::s::i::c::_::a::s::y::n::c::::::::t::e::s::t::_::b::l::o::c::k::_::o::n::_::a::l::l::_::p::a::n::i::c::s::_::f::r::o::m::_::s::p::a::w::n::s::spawn
  - 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
  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
  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
  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_replica_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
  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::test_authentication_with_mock_streaming_credentials_provider
  - token_based_authentication_acl_tests::add_users_with_jwt_tokens
  - token_based_authentication_acl_tests::test_token_rotation_with_mock_streaming_credentials_provider
  - token_based_authentication_acl_tests::test_authentication_error_handling_with_mock_streaming_credentials_provider
  - token_based_authentication_acl_tests::test_multiple_connections_from_one_client_sharing_a_single_credentials_provider
  - token_based_authentication_acl_tests::test_multiple_clients_sharing_a_single_credentials_provider
  - token_based_authentication_acl_tests::test_connection_rendered_unusable_when_reauthentication_fails
  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
  - OneTimeCredentialsProvider::subscribe
  - DelayedFailureCredentialsProvider::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_connection_renders_unusable_when_the_subscription_stream_closes
  - credentials_provider_failures_tests::test_connection_renders_unusable_when_the_subscription_stream_closes_after_an_error
  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
  - 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
  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::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_credentials_provider
  - Client::get_multiplexed_async_connection
  - Client::get_multiplexed_async_connection_with_config
  - Client::get_connection_manager
  - 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
  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::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_sentinel_tls_mode
  - SentinelClientBuilder::set_client_to_sentinel_username
  - SentinelClientBuilder::set_client_to_sentinel_password
  - 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::db
  - RedisConnectionInfo::set_username
  - RedisConnectionInfo::set_password
  - RedisConnectionInfo::set_protocol
  - RedisConnectionInfo::set_skip_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::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
  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
  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_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
  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
  - 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:
  - 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
  - Slot::master
  - Slot::replicas
  - 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::connection_timeout
  - ClusterClientBuilder::response_timeout
  - ClusterClientBuilder::use_protocol
  - ClusterClientBuilder::push_sender
  - ClusterClientBuilder::tcp_settings
  - ClusterClientBuilder::async_dns_resolver
  - ClusterClientBuilder::cache_config
  - 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
  source_file: /src/redis-rs/redis/src/cluster_handling/client.rs
- function_names:
  - slot_cmd
  - split_node_address
  - get_connection_addr
  - get_connection_info
  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:
  - SlotMapValue::from_slot
  - 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
  - SlotAddrs::new
  - SlotAddrs::get_replica_node
  - SlotAddrs::slot_addr
  - SlotAddrs::from_slot
  - '&''a SlotAddrs::into_iter'
  - Slot::new
  - tests::test_slot_map
  - tests::test_slot_map_when_read_from_replica_is_false
  - 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_read_from_replica_is_false
  - 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
  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
  - tests::parse_cluster_node_host_port
  source_file: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.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
  - StreamAddOptions::nomkstream
  - StreamAddOptions::trim
  - StreamAddOptions::set_deletion_policy
  - 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
  - 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
  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:
  - 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
