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:
    - process::Command::new
    - stdout
    - expect
    - process::Stdio::piped
    - arg
    - RedisServer::arg
    - spawn
    - wait
    - stderr
    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:
    - make_key
    - process::Command::new
    - stdout
    - take
    - Poll::expect
    - expect
    - process::Stdio::piped
    - RedisServer::arg
    - arg
    - fs::write
    - spawn
    - wait
    - '&TempDir::path'
    - stderr
    - stdin
    - 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:
    - 0.0.1:0".parse::<SocketAddr>
    - TcpListener::from
    - set_reuse_address
    - listen
    - Socket::new
    - RedisServer::unwrap
    - bind
    - unwrap
    - into
    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:
    - get_listener_on_free_port
    - unwrap
    - port
    - TcpListener::local_addr
    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: 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: 0
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: use_protocol
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - 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: 1
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: redis_settings
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - RedisConnectionInfo::default
    - Self::set_protocol
    - use_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: 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:
    - ok
    - map
    - env::var
    - as_ref
    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:
    - PathBuf::from
    - rand::random::<(u64, u64)>
    - ServerType::get_intended
    - redis::ConnectionAddr::Unix
    - redis::ConnectionAddr::Tcp
    - '&str::to_string'
    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:
    - utils::get_random_available_port
    - unwrap_or_else
    - RedisServer::get_addr
    - Cmd::spawn
    - RedisServer::new_with_addr_tls_modules_and_spawner
    linkageType: ''
    returnType: RedisServer
    signature: 'pub fn with_modules(modules: &[Module], mtls_enabled: bool) -> RedisServer'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::new_with_addr_tls_modules_and_spawner
      Src: /src/redis-rs/redis-test/src/server.rs:130,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/server.rs:137,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis-test/src/server.rs:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - addr
    - modules
    - mtls_enabled
    argTypes:
    - redis::ConnectionAddr
    - '&[Module]'
    - bool
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: RedisServer::new_with_addr_and_modules
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - unwrap_or_else
    - Cmd::spawn
    - RedisServer::new_with_addr_tls_modules_and_spawner
    linkageType: ''
    returnType: RedisServer
    signature: 'pub fn new_with_addr_and_modules(addr: redis::ConnectionAddr,modules:
      &[Module],mtls_enabled: bool,) -> RedisServer'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 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: 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:
    - to_string
    - get_major_version
    - RedisServer::stdout
    - RedisServer::arg
    - clone
    - Some
    - tempfile::Builder::new
    - process::Command::new
    - Self::log_file
    - utils::build_keys_and_certs_for_tls
    - arg
    - tempdir
    - Option<TlsFilePaths>::unwrap_or_else
    - stderr
    - TcpListener::to_string
    - PathBuf::clone
    - spawner
    - expect
    - process::Stdio::piped
    - RedisResult::prefix
    - env::var
    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: RedisServer::client_addr
      Src: /src/redis-rs/redis-test/src/server.rs:263,1
    - Dst: '&redis::ConnectionAddr::clone'
      Src: /src/redis-rs/redis-test/src/server.rs:263,1
    - Dst: Self::into_connection_info
      Src: /src/redis-rs/redis-test/src/server.rs:263,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:263,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis-test/src/server.rs:263,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis-test/src/server.rs:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 9
    functionLinenumber: 262
    functionLinenumberEnd: 268
    functionName: RedisServer::connection_info
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - Self::into_connection_info
    - set_redis_settings
    - RedisResult::unwrap
    - redis_settings
    - '&redis::ConnectionAddr::clone'
    - RedisServer::client_addr
    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:271,1
    - Dst: wait
      Src: /src/redis-rs/redis-test/src/server.rs:272,1
    - Dst: RedisServer::client_addr
      Src: /src/redis-rs/redis-test/src/server.rs:273,1
    - Dst: fs::remove_file
      Src: /src/redis-rs/redis-test/src/server.rs:274,1
    - Dst: ok
      Src: /src/redis-rs/redis-test/src/server.rs:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: RedisServer::stop
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 1
    functionsReached:
    - ok
    - kill
    - wait
    - fs::remove_file
    - RedisServer::client_addr
    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:279,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/server.rs:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tempdir
    argTypes:
    - '&TempDir'
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 280
    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:284,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/server.rs:285,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:285,1
    - Dst: output
      Src: /src/redis-rs/redis-test/src/server.rs:285,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:285,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:284,1
    - Dst: split_once
      Src: /src/redis-rs/redis-test/src/server.rs:292,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:293,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:293,1
    - Dst: parse
      Src: /src/redis-rs/redis-test/src/server.rs:294,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 295
    functionName: get_major_version
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 1
    functionsReached:
    - output
    - process::Command::new
    - split_once
    - RedisServer::arg
    - parse
    - String::from_utf8
    - unwrap
    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:
    - String::from
    - RedisServer::get_addr
    - ConnectionAddr::Tcp
    linkageType: ''
    returnType: ConnectionAddr
    signature: 'fn get_addr(port: u16) -> ConnectionAddr'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::new_with_addr_tls_modules_and_spawner
      Src: /src/redis-rs/redis-test/src/sentinel.rs:34,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:35,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/sentinel.rs:37,1
    - Dst: '&TlsFilePaths::clone'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:37,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:42,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:42,1
    - Dst: 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:
    - unwrap
    - '&TlsFilePaths::clone'
    - Cmd::current_dir
    - get_addr
    - Cmd::spawn
    - Some
    - Cmd::arg
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - '&TempDir::path'
    - '&mut 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:
    - '&TlsFilePaths::clone'
    - u16::to_string
    - File::create
    - get_addr
    - arg
    - Cmd::current_dir
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - Some
    - unwrap
    - Cmd::arg
    - Cmd::spawn
    - '&TempDir::path'
    - join
    - '&mut Cmd::arg'
    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:
    - PathBuf::write_all
    - as_bytes
    - '&TlsFilePaths::clone'
    - enumerate
    - '&[u16]::iter'
    - File::create
    - get_addr
    - Poll::unwrap
    - Cmd::current_dir
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - Some
    - unwrap
    - Cmd::arg
    - Cmd::spawn
    - '&TempDir::path'
    - '&mut Cmd::arg'
    - join
    - PathBuf::flush
    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:
    - redis::Cmd::query
    - String::from_redis_value_ref
    - Duration::from_millis
    - RedisResult::unwrap
    - get_connection
    - Ok
    - std::thread::sleep
    - Err
    - redis::cmd
    - unwrap
    - Result::unwrap
    - starts_with
    - ConnectionAddr::first
    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: RedisResult::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:
    - redis::Cmd::query
    - String::from_redis_value_ref
    - Duration::from_millis
    - RedisResult::unwrap
    - get_connection
    - Ok
    - std::thread::sleep
    - Err
    - redis::cmd
    - unwrap
    - Result::unwrap
    - ConnectionAddr::get
    - starts_with
    - ConnectionAddr::first
    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:
    - wait_for_replica
    - connection_info
    - redis::Client::open
    - clone
    - impl Iterator::len
    - wait_for_master_server
    - ConnectionAddr::is_err
    linkageType: ''
    returnType: void
    signature: 'fn wait_for_replicas_to_sync(servers: &[RedisServer], masters: u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisSentinelCluster::with_modules
      Src: /src/redis-rs/redis-test/src/sentinel.rs:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - masters
    - replicas_per_master
    - sentinels
    argTypes:
    - u16
    - u16
    - u16
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: RedisSentinelCluster::new
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - RedisSentinelCluster::with_modules
    linkageType: ''
    returnType: RedisSentinelCluster
    signature: 'pub fn new(masters: u16, replicas_per_master: u16, sentinels: u16)
      -> RedisSentinelCluster'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:223,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/sentinel.rs:223,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:223,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/sentinel.rs:223,1
    - Dst: '{

        server::build_keys_and_certs_for_tls'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:227,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:228,1
    - Dst: std::collections::HashSet::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:231,1
    - Dst: RedisServer::len
      Src: /src/redis-rs/redis-test/src/sentinel.rs:232,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis-test/src/sentinel.rs:233,1
    - Dst: get_random_available_port
      Src: /src/redis-rs/redis-test/src/sentinel.rs:233,1
    - Dst: RedisServer::into_iter
      Src: /src/redis-rs/redis-test/src/sentinel.rs:235,1
    - Dst: std::iter::Chain::collect
      Src: /src/redis-rs/redis-test/src/sentinel.rs:235,1
    - Dst: RedisServer::pop
      Src: /src/redis-rs/redis-test/src/sentinel.rs:238,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:238,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:239,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/sentinel.rs:239,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:239,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/sentinel.rs:239,1
    - Dst: impl Iterator::push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:243,1
    - Dst: spawn_master_server
      Src: /src/redis-rs/redis-test/src/sentinel.rs:243,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:244,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:245,1
    - Dst: RedisServer::pop
      Src: /src/redis-rs/redis-test/src/sentinel.rs:248,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:248,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:249,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/sentinel.rs:249,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:249,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/sentinel.rs:249,1
    - Dst: impl Iterator::push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:253,1
    - Dst: spawn_replica_server
      Src: /src/redis-rs/redis-test/src/sentinel.rs:253,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:260,1
    - Dst: wait_for_replicas_to_sync
      Src: /src/redis-rs/redis-test/src/sentinel.rs:265,1
    - Dst: RedisServer::pop
      Src: /src/redis-rs/redis-test/src/sentinel.rs:269,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:269,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:270,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/sentinel.rs:270,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:270,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/sentinel.rs:270,1
    - Dst: impl Iterator::push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:275,1
    - Dst: spawn_sentinel_server
      Src: /src/redis-rs/redis-test/src/sentinel.rs:275,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:282,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 108
    argCount: 4
    argNames:
    - masters
    - replicas_per_master
    - sentinels
    - modules
    argTypes:
    - u16
    - u16
    - u16
    - '&[Module]'
    constantsTouched: []
    func_position:
      end: 290
      start: 213
    functionDepth: 7
    functionLinenumber: 213
    functionLinenumberEnd: 290
    functionName: RedisSentinelCluster::with_modules
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - spawn_master_server
    - std::collections::HashSet::new
    - get_random_available_port
    - wait_for_replicas_to_sync
    - spawn_sentinel_server
    - tempfile::Builder::new
    - tempdir
    - unwrap
    - '{

      server::build_keys_and_certs_for_tls'
    - RedisServer::pop
    - RedisServer::into_iter
    - expect
    - push
    - spawn_replica_server
    - impl Iterator::push
    - RedisServer::insert
    - RedisServer::len
    - RedisResult::prefix
    - std::iter::Chain::collect
    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:
    - Value::BulkString
    - to_vec
    - String::as_bytes
    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:
    - to_vec
    - Value::BulkString
    - '&str::as_bytes'
    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:
    - Result<Vec<V>, RedisError>::map
    - Cmd::into_redis_cmd_bytes
    - into_iter
    - collect
    - into_redis_value
    - map
    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:
    - VecDeque::from_iter
    - Mutex::new
    - Arc::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new<I>(commands: I) -> SelfwhereI: IntoIterator<Item = MockCmd>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 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
    - Arc::strong_count
    - lock
    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
    - is_empty
    - lock
    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:
    - future::ready
    - <MockRedisConnection as ConnectionLike>::req_packed_command
    - as_slice
    - Cmd::get_packed_command
    - Poll::boxed
    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:
    - future::ready
    - Cmd::get_packed_pipeline
    - as_slice
    - Poll::boxed
    - <MockRedisConnection as ConnectionLike>::req_packed_commands
    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:
    - Self::assert_all_commands_consumed
    - exec
    - RedisResult::unwrap
    - MockRedisConnection::new
    - Cmd::arg
    - cmd
    - '&mut Cmd::arg'
    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:
    - Self::assert_all_commands_consumed
    - '&mut Cmd::query_async'
    - exec_async
    - MockRedisConnection::new
    - Cmd::arg
    - unwrap
    - cmd
    - '&mut Cmd::arg'
    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:
    - Self::assert_all_commands_consumed
    - RedisResult::unwrap_err
    - exec
    - RedisResult::unwrap
    - MockRedisConnection::new
    - Cmd::arg
    - cmd
    - '&mut Cmd::arg'
    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:
    - Self::assert_all_commands_consumed
    - RedisResult::unwrap_err
    - exec
    - RedisResult::unwrap
    - MockRedisConnection::new
    - Cmd::arg
    - cmd
    - '&mut Cmd::arg'
    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:
    - redis::Cmd::arg
    - Self::assert_all_commands_consumed
    - '&mut Cmd::query'
    - MockRedisConnection::new
    - expect
    - Pipeline::cmd
    - '&mut Cmd::cmd'
    - pipe
    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:
    - redis::Cmd::arg
    - Self::assert_all_commands_consumed
    - '&mut Pipeline::cmd'
    - Pipeline::atomic
    - MockRedisConnection::new
    - expect
    - '&mut Cmd::query'
    - '&mut Cmd::cmd'
    - pipe
    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: 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:
    - ok
    - map
    - env::var
    - as_ref
    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:
    - '&str::into'
    - ClusterType::get_intended
    - redis::ConnectionAddr::Tcp
    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:
    - connect
    - socket2::Domain::for_address
    - is_ok
    - ConnectionAddr::parse
    - RedisServer::expect
    - socket2::Socket::new
    - expect
    - into
    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:
    - to_string
    - into_iter
    - std::collections::HashSet::new
    - get_random_available_port
    - Ok
    - std::thread::sleep
    - Cmd::stdout
    - try_wait
    - Some
    - RedisServer::contains
    - None::is_some
    - path
    - tempfile::Builder::new
    - None::as_ref
    - std::fs::write
    - '&mut Cmd::arg'
    - Vec::is_empty
    - success
    - process::Command::new
    - Duration::from_millis
    - wait_for_status_ok
    - collect
    - None::clone
    - Cmd::output
    - ClusterType::get_intended
    - Vec::into_iter
    - tempdir
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - arg
    - unwrap
    - RedisServer::log_file_contents
    - make_server
    - Result::wait_for_replicas
    - verify_server
    - map
    - expect
    - Cmd::current_dir
    - push
    - Cmd::arg
    - port_in_use
    - Err
    - impl Iterator::push
    - args
    - join
    - '{

      server::build_keys_and_certs_for_tls_ext'
    - ClusterType::build_addr
    - std::iter::Chain::map
    - RedisServer::insert
    - process::Stdio::piped
    - RedisResult::prefix
    - Cmd::spawn
    - ConnectionAddr::clone
    - Poll::expect
    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:
    - RedisResult::iter
    - RedisServer::connection_info
    - redis::Cmd::arg
    - all
    - redis::from_redis_value
    - u16::len
    - Duration::from_millis
    - RedisResult::unwrap
    - get_connection
    - std::thread::sleep
    - redis::cmd
    - redis::Client::open
    - '&mut Cmd::query'
    - unwrap
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn wait_for_replicas(&self, replicas: u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::stop
      Src: /src/redis-rs/redis-test/src/cluster.rs: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:
    - std::fs::read_to_string
    - Duration::from_millis
    - RedisServer::log_file
    - std::thread::sleep
    - expect
    - Option::contains
    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:
    - to_compile_error
    - len
    - span
    - syn::Error::new_spanned
    - last
    - clone
    - is_empty
    - syn::Ident::new
    - into
    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:385,1
    - Dst: RedisResult::filter
      Src: /src/redis-rs/redis/src/sentinel.rs:385,1
    - Dst: RedisResult::trim_start
      Src: /src/redis-rs/redis/src/sentinel.rs:387,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/src/sentinel.rs:387,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/sentinel.rs:385,1
    - Dst: RedisResult::split_once
      Src: /src/redis-rs/redis/src/sentinel.rs:388,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:385,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/sentinel.rs:389,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/sentinel.rs:389,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - value
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 392
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 392
    functionName: parse_replication_info
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - to_string
    - filter_map
    - RedisResult::trim_start
    - collect
    - RedisResult::split_once
    - RedisResult::filter
    - starts_with
    - impl combine::Parser::split
    - 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::arg
    - assert_is_master_role
    - redis::cmd
    - '&mut Cmd::query'
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'fn assert_is_connection_to_master(conn: &mut Connection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs: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::arg
    - '&Client::get_connection_info'
    - redis::cmd
    - '&mut Cmd::query'
    - 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:
    - assert_connection_is_replica_of_correct_master
    - get_connection_info
    - RedisResult::unwrap
    - get_connection
    - '&redis::sentinel::Sentinel::replica_rotate_for'
    - Some
    - push
    - unwrap
    - clone
    - 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:
    - assert_connection_is_replica_of_correct_master
    - RedisResult::unwrap
    - get_connection
    - '&redis::sentinel::Sentinel::replica_rotate_for'
    - Some
    - 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:
    - TestSentinelContext::sentinel_node_connection_info
    - TestSentinelContext::new
    - RedisResult::unwrap
    - Some
    - '&redis::sentinel::Sentinel::get_replica_clients'
    - TestSentinelContext::sentinel_mut
    linkageType: ''
    returnType: void
    signature: fn test_get_replica_clients_success()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs: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:
    - TestSentinelContext::sentinel_node_connection_info
    - RedisResult::unwrap_err
    - TestSentinelContext::new
    - Some
    - '&redis::sentinel::Sentinel::get_replica_clients'
    - TestSentinelContext::sentinel_mut
    linkageType: ''
    returnType: void
    signature: fn test_get_replica_clients_invalid_master_name()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs: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:
    - assert_connection_is_replica_of_correct_master
    - TestSentinelContext::sentinel_node_connection_info
    - '&redis::sentinel::Sentinel::master_for'
    - TestSentinelContext::new
    - RedisResult::unwrap
    - get_connection
    - Some
    - unwrap
    - '&redis::sentinel::Sentinel::get_replica_clients'
    - TestSentinelContext::sentinel_mut
    linkageType: ''
    returnType: void
    signature: fn test_get_replica_clients_report_correct_master()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs: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:
    - std::time::Duration::from_millis
    - TestSentinelContext::new
    - std::thread::sleep
    - clone
    - Some
    - '&mut Cmd::arg'
    - Client::open
    - get_connection
    - arg
    - unwrap
    - TestSentinelContext::sentinels_connection_info
    - TestSentinelContext::sentinel_mut
    - redis::Cmd::arg
    - RedisResult::expect
    - RedisResult::unwrap
    - "arg(\"set\")\n        .arg(master_name)\n        .arg(\"down-after-milliseconds\"\
      )\n        .arg(\"500\")\n        .query::<()>"
    - '&redis::sentinel::Sentinel::get_replica_clients'
    - TestSentinelContext::sentinel_node_connection_info
    - redis::cmd
    - stop
    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:
    - redis::Cmd::arg
    - '&redis::sentinel::Sentinel::master_for'
    - TestSentinelContext::new
    - RedisResult::unwrap
    - get_connection
    - '&redis::sentinel::Sentinel::replica_rotate_for'
    - assert_is_connection_to_master
    - Result::sentinel_mut
    - arg
    - redis::cmd
    - Some
    - '&mut Cmd::query'
    - unwrap
    - query
    - Result::sentinel_node_connection_info
    - '&mut Cmd::arg'
    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:
    - redis::Cmd::arg
    - RedisResult::unwrap_err
    - '&redis::sentinel::Sentinel::master_for'
    - TestSentinelContext::new
    - RedisResult::unwrap
    - get_connection
    - Result::sentinel_mut
    - arg
    - redis::cmd
    - Some
    - '&mut Cmd::query'
    - unwrap
    - query
    - Result::sentinel_node_connection_info
    - '&mut Cmd::arg'
    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:
    - assert_connection_is_replica_of_correct_master
    - '&redis::sentinel::Sentinel::master_for'
    - TestSentinelContext::new
    - RedisResult::unwrap
    - get_connection
    - assert_is_connection_to_master
    - Result::sentinel_mut
    - '&redis::sentinel::Sentinel::replica_for'
    - Some
    - unwrap
    - Result::sentinel_node_connection_info
    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:
    - assert_connect_to_known_replicas
    - '&redis::sentinel::Sentinel::master_for'
    - TestSentinelContext::new
    - RedisResult::unwrap
    - get_connection
    - assert_is_connection_to_master
    - Result::sentinel_mut
    - connect_to_all_replicas
    - Some
    - unwrap
    - Result::sentinel_node_connection_info
    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:
    - TestSentinelContext::sentinel_node_connection_info
    - assert_connect_to_known_replicas
    - Duration::from_millis
    - '&redis::sentinel::Sentinel::master_for'
    - TestSentinelContext::new
    - RedisResult::unwrap
    - get_connection
    - assert_is_connection_to_master
    - std::thread::sleep
    - connect_to_all_replicas
    - Some
    - unwrap
    - TestSentinelContext::sentinel_mut
    - stop
    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:
    - assert_connection_is_replica_of_correct_master
    - unwrap
    - TestSentinelContext::sentinel_node_connection_info
    - String::from
    - redis::Cmd::query
    - '&redis::sentinel::Sentinel::clone'
    - Client::open
    - TestSentinelContext::new
    - RedisResult::unwrap
    - get_connection
    - assert_is_connection_to_master
    - '&redis::sentinel::Sentinel::master_for'
    - redis::cmd
    - SentinelClient::build
    - '&Vec::clone'
    - TestSentinelContext::sentinels_connection_info
    - Some
    - TestSentinelContext::sentinel_mut
    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:
    - TestSentinelContext::sentinel_node_connection_info
    - unwrap
    - first
    - String::from
    - TestSentinelContext::new
    - RedisResult::unwrap
    - get_sentinel_client
    - SentinelClient::build
    - Some
    - '&Vec::clone'
    - TestSentinelContext::sentinels_connection_info
    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:
    - expect_err
    - String::from
    - get_sentinel_client
    - RedisResult::unwrap
    - SentinelClient::build
    linkageType: ''
    returnType: void
    signature: fn test_sentinel_client_io_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs: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:
    - expect_err
    - String::from
    - TestSentinelContext::new
    - RedisResult::unwrap
    - get_sentinel_client
    - iter
    - "cluster\n        .servers\n        .iter()\n        .map(|redis_server| redis_server.connection_info().clone())\n\
      \        .collect::<Vec<_>>"
    - connection_info
    - SentinelClient::build
    - clone
    - '&Vec::clone'
    - TestSentinelContext::sentinels_connection_info
    - map
    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:
    - '&redis::sentinel::Sentinel::master_for'
    - TestSentinelContext::new
    - Some
    - set_client_to_redis_tls_mode
    - redis::Cmd::query
    - Client::open
    - get_connection
    - redis_test::server::use_protocol
    - set_client_to_sentinel_protocol
    - unwrap
    - TestSentinelContext::sentinels_connection_info
    - TestSentinelContext::sentinel_mut
    - map
    - String::from
    - assert_is_connection_to_master
    - RedisResult::unwrap
    - iter
    - SentinelClientBuilder::new
    - '&redis::sentinel::Sentinel::addr'
    - TestSentinelContext::tls_mode
    - assert_connection_is_replica_of_correct_master
    - TestSentinelContext::sentinel_node_connection_info
    - '&redis::sentinel::Sentinel::clone'
    - redis::cmd
    - ConnectionAddr::clone
    - build
    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::arg
    - '&mut Cmd::query_async'
    - assert_is_master_role
    - redis::cmd
    - unwrap
    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::arg
    - '&mut Cmd::query_async'
    - '&Client::get_connection_info'
    - redis::cmd
    - unwrap
    - assert_replica_role_and_master_addr
    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:
    - get_multiplexed_async_connection
    - async_assert_connection_is_replica_of_correct_master
    - get_connection_info
    - '&redis::sentinel::Sentinel::async_replica_rotate_for'
    - push
    - Some
    - unwrap
    - clone
    - 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:
    - async_assert_connection_is_replica_of_correct_master
    - get_multiplexed_async_connection
    - '&redis::sentinel::Sentinel::async_replica_rotate_for'
    - Some
    - unwrap
    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: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:674,1
    - Dst: '&redis::sentinel::Sentinel::async_replica_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:676,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:677,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:676,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:682,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:683,1
    - Dst: Ok::<(), RedisError>
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:686,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 687
      start: 665
    functionDepth: 7
    functionLinenumber: 665
    functionLinenumberEnd: 687
    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'
    - TestSentinelContext::sentinel_node_connection_info
    - get_multiplexed_async_connection
    - async_assert_connection_is_replica_of_correct_master
    - TestSentinelContext::new
    - Ok::<(), RedisError>
    - Some
    - async_assert_is_connection_to_master
    - TestSentinelContext::sentinel_mut
    - '&redis::sentinel::Sentinel::async_master_for'
    linkageType: ''
    returnType: RedisResult
    signature: async fn sentinel_connect_to_random_replica_async() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:693,1
    - Dst: Result::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:694,1
    - Dst: Result::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:695,1
    - Dst: '&redis::sentinel::Sentinel::async_master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:697,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:698,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:700,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:702,1
    - Dst: async_connect_to_all_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:704,1
    - Dst: async_assert_connect_to_known_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:713,1
    - Dst: Ok::<(), RedisError>
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:723,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 724
      start: 690
    functionDepth: 6
    functionLinenumber: 690
    functionLinenumberEnd: 724
    functionName: async_tests::sentinel_connect_to_multiple_replicas_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - get_multiplexed_async_connection
    - async_connect_to_all_replicas
    - async_assert_connect_to_known_replicas
    - TestSentinelContext::new
    - Ok::<(), RedisError>
    - Result::sentinel_mut
    - Some
    - async_assert_is_connection_to_master
    - '&redis::sentinel::Sentinel::async_master_for'
    - Result::sentinel_node_connection_info
    linkageType: ''
    returnType: RedisResult
    signature: async fn sentinel_connect_to_multiple_replicas_async() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:730,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:731,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:733,1
    - Dst: '&redis::sentinel::Sentinel::async_master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:735,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:736,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:738,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:740,1
    - Dst: stop
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:742,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:743,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:743,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:745,1
    - Dst: async_connect_to_all_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:747,1
    - Dst: async_assert_connect_to_known_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:756,1
    - Dst: Ok::<(), RedisError>
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:766,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 767
      start: 727
    functionDepth: 4
    functionLinenumber: 727
    functionLinenumberEnd: 767
    functionName: async_tests::sentinel_server_down_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::sentinel_node_connection_info
    - get_multiplexed_async_connection
    - async_connect_to_all_replicas
    - Duration::from_millis
    - async_assert_connect_to_known_replicas
    - TestSentinelContext::new
    - std::thread::sleep
    - Ok::<(), RedisError>
    - Some
    - async_assert_is_connection_to_master
    - TestSentinelContext::sentinel_mut
    - '&redis::sentinel::Sentinel::async_master_for'
    - stop
    linkageType: ''
    returnType: RedisResult
    signature: async fn sentinel_server_down_async() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:772,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:773,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:774,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:774,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:775,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:776,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:776,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:773,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: get_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:789,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:791,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:793,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:794,1
    - Dst: '&redis::sentinel::Sentinel::async_master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:795,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:796,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:801,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:803,1
    - Dst: Ok::<(), RedisError>
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:807,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 808
      start: 770
    functionDepth: 7
    functionLinenumber: 770
    functionLinenumberEnd: 808
    functionName: async_tests::sentinel_redis_client_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::sentinel_node_connection_info
    - get_async_connection
    - async_assert_connection_is_replica_of_correct_master
    - String::from
    - TestSentinelContext::new
    - RedisResult::unwrap
    - async_assert_is_connection_to_master
    - Ok::<(), RedisError>
    - SentinelClient::build
    - Some
    - '&Vec::clone'
    - TestSentinelContext::sentinels_connection_info
    - TestSentinelContext::sentinel_mut
    - '&redis::sentinel::Sentinel::async_master_for'
    linkageType: ''
    returnType: RedisResult
    signature: async fn sentinel_redis_client_async() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:813,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:814,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:815,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:815,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:816,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:817,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:817,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:814,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:822,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:823,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:823,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:824,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:825,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:825,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:822,1
    - Dst: async_get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:830,1
    - Dst: async_get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:831,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:832,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:832,1
    - Dst: Ok::<(), RedisError>
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 845
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 845
    functionName: async_tests::sentinel_client_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::sentinel_node_connection_info
    - first
    - unwrap
    - String::from
    - TestSentinelContext::new
    - RedisResult::unwrap
    - async_get_sentinel_client
    - Ok::<(), RedisError>
    - SentinelClient::build
    - Some
    - '&Vec::clone'
    - TestSentinelContext::sentinels_connection_info
    linkageType: ''
    returnType: RedisResult
    signature: async fn sentinel_client_async() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:851,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:853,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:853,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:857,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:857,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:853,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:859,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:860,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:860,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:861,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:862,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:862,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:859,1
    - Dst: async_get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:867,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:868,1
    - Dst: Ok::<(), RedisError>
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 877
      start: 848
    functionDepth: 10
    functionLinenumber: 848
    functionLinenumberEnd: 877
    functionName: async_tests::sentinel_client_async_not_sentinel_error
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - expect_err
    - TestSentinelContext::sentinel_node_connection_info
    - "cluster\n            .servers\n            .iter()\n            .map(|redis_server|\
      \ redis_server.connection_info().clone())\n            .collect::<Vec<_>>"
    - String::from
    - TestSentinelContext::new
    - RedisResult::unwrap
    - async_get_sentinel_client
    - iter
    - Ok::<(), RedisError>
    - connection_info
    - SentinelClient::build
    - clone
    - '&Vec::clone'
    - TestSentinelContext::sentinels_connection_info
    - Some
    - map
    linkageType: ''
    returnType: RedisResult
    signature: async fn sentinel_client_async_not_sentinel_error() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:883,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:885,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:883,1
    - Dst: async_get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:891,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:892,1
    - Dst: Ok::<(), RedisError>
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 895
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 895
    functionName: async_tests::sentinel_client_async_io_error
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - expect_err
    - String::from
    - RedisResult::unwrap
    - async_get_sentinel_client
    - Ok::<(), RedisError>
    - SentinelClient::build
    linkageType: ''
    returnType: RedisResult
    signature: async fn sentinel_client_async_io_error() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:900,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:901,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:902,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:902,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:903,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:904,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:904,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:901,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:909,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:910,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:910,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:911,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:912,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:912,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:909,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:918,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:918,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:918,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:918,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:920,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:924,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:926,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:927,1
    - Dst: '&redis::sentinel::Sentinel::async_master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:928,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:929,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:934,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:938,1
    - Dst: Ok::<(), RedisError>
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:942,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 943
      start: 898
    functionDepth: 7
    functionLinenumber: 898
    functionLinenumberEnd: 943
    functionName: async_tests::sentinel_client_async_with_connection_timeout
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::sentinel_node_connection_info
    - '&redis::sentinel::Sentinel::async_master_for'
    - async_assert_connection_is_replica_of_correct_master
    - Self::set_connection_timeout
    - String::from
    - AsyncConnectionConfig::new
    - TestSentinelContext::new
    - RedisResult::unwrap
    - async_assert_is_connection_to_master
    - Ok::<(), RedisError>
    - SentinelClient::build
    - Some
    - '&Vec::clone'
    - TestSentinelContext::sentinels_connection_info
    - Duration::from_secs
    - TestSentinelContext::sentinel_mut
    - get_async_connection_with_config
    linkageType: ''
    returnType: RedisResult
    signature: async fn sentinel_client_async_with_connection_timeout() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:948,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:949,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:950,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:950,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:951,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:952,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:952,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:949,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:957,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:958,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:958,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:959,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:960,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:960,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:957,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:965,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:967,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:971,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:973,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:974,1
    - Dst: '&redis::sentinel::Sentinel::async_master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:975,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:976,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:981,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:985,1
    - Dst: Ok::<(), RedisError>
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:989,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 990
      start: 946
    functionDepth: 7
    functionLinenumber: 946
    functionLinenumberEnd: 990
    functionName: async_tests::sentinel_client_async_with_response_timeout
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::sentinel_node_connection_info
    - '&redis::sentinel::Sentinel::async_master_for'
    - async_assert_connection_is_replica_of_correct_master
    - String::from
    - AsyncConnectionConfig::new
    - TestSentinelContext::new
    - RedisResult::unwrap
    - async_assert_is_connection_to_master
    - Ok::<(), RedisError>
    - SentinelClient::build
    - Some
    - '&Vec::clone'
    - TestSentinelContext::sentinels_connection_info
    - TestSentinelContext::sentinel_mut
    - get_async_connection_with_config
    linkageType: ''
    returnType: RedisResult
    signature: async fn sentinel_client_async_with_response_timeout() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:995,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:996,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:997,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:997,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:998,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:999,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:999,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:996,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1004,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1005,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1005,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1006,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1007,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1007,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1004,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1012,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1014,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1018,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1020,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1021,1
    - Dst: '&redis::sentinel::Sentinel::async_master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1022,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1023,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1028,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1032,1
    - Dst: Ok::<(), RedisError>
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1036,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 993
    functionDepth: 7
    functionLinenumber: 993
    functionLinenumberEnd: 1037
    functionName: async_tests::sentinel_client_async_with_timeouts
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::sentinel_node_connection_info
    - '&redis::sentinel::Sentinel::async_master_for'
    - async_assert_connection_is_replica_of_correct_master
    - String::from
    - AsyncConnectionConfig::new
    - TestSentinelContext::new
    - RedisResult::unwrap
    - async_assert_is_connection_to_master
    - Ok::<(), RedisError>
    - SentinelClient::build
    - Some
    - '&Vec::clone'
    - TestSentinelContext::sentinels_connection_info
    - TestSentinelContext::sentinel_mut
    - get_async_connection_with_config
    linkageType: ''
    returnType: RedisResult
    signature: async fn sentinel_client_async_with_timeouts() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1043,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1044,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1045,1
    - Dst: '&redis::sentinel::Sentinel::async_get_replica_clients'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1047,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1048,1
    - Dst: Ok::<(), RedisError>
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1052
    functionName: async_tests::get_replica_clients_success_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::sentinel_node_connection_info
    - TestSentinelContext::new
    - Ok::<(), RedisError>
    - '&redis::sentinel::Sentinel::async_get_replica_clients'
    - Some
    - TestSentinelContext::sentinel_mut
    linkageType: ''
    returnType: RedisResult
    signature: async fn get_replica_clients_success_async() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1056,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1057,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1058,1
    - Dst: '&redis::sentinel::Sentinel::async_get_replica_clients'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1060,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1061,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1060,1
    - Dst: Ok::<(), RedisError>
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1074
    functionName: async_tests::get_replica_clients_invalid_master_name_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::sentinel_node_connection_info
    - TestSentinelContext::new
    - Ok::<(), RedisError>
    - '&redis::sentinel::Sentinel::async_get_replica_clients'
    - Some
    - TestSentinelContext::sentinel_mut
    - unwrap_err
    linkageType: ''
    returnType: RedisResult
    signature: async fn get_replica_clients_invalid_master_name_async() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1080,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1081,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1082,1
    - Dst: '&redis::sentinel::Sentinel::async_master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1084,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1085,1
    - Dst: '&redis::sentinel::Sentinel::async_get_replica_clients'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1087,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1088,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1092,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1093,1
    - Dst: Ok::<(), RedisError>
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1096,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1077
    functionDepth: 7
    functionLinenumber: 1077
    functionLinenumberEnd: 1097
    functionName: async_tests::get_replica_clients_report_correct_master_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::sentinel_node_connection_info
    - get_multiplexed_async_connection
    - async_assert_connection_is_replica_of_correct_master
    - TestSentinelContext::new
    - Ok::<(), RedisError>
    - '&redis::sentinel::Sentinel::async_get_replica_clients'
    - Some
    - TestSentinelContext::sentinel_mut
    - '&redis::sentinel::Sentinel::async_master_for'
    linkageType: ''
    returnType: RedisResult
    signature: async fn get_replica_clients_report_correct_master_async() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1103,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1104,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1105,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1105,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1107,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1107,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1107,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1112,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1112,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1112,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1112,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1112,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:1112,1
    - Dst: stop
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1120,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1121,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1121,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1123,1
    - Dst: '&redis::sentinel::Sentinel::async_get_replica_clients'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1124,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1125,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1124,1
    - Dst: Ok::<(), RedisError>
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1100
    functionDepth: 4
    functionLinenumber: 1100
    functionLinenumberEnd: 1136
    functionName: async_tests::get_replica_clients_with_one_replica_down_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - std::time::Duration::from_millis
    - TestSentinelContext::new
    - std::thread::sleep
    - clone
    - Some
    - '&mut Cmd::arg'
    - Client::open
    - Ok::<(), RedisError>
    - '&redis::sentinel::Sentinel::async_get_replica_clients'
    - arg
    - TestSentinelContext::sentinels_connection_info
    - TestSentinelContext::sentinel_mut
    - "arg(\"set\")\n            .arg(master_name)\n            .arg(\"down-after-milliseconds\"\
      )\n            .arg(\"500\")\n            .query_async::<()>"
    - redis::Cmd::arg
    - get_multiplexed_async_connection
    - RedisResult::unwrap
    - expect
    - TestSentinelContext::sentinel_node_connection_info
    - redis::cmd
    - stop
    linkageType: ''
    returnType: RedisResult
    signature: async fn get_replica_clients_with_one_replica_down_async() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl combine::Parser::split
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1148,1
    - Dst: RedisResult::filter_map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1148,1
    - Dst: RedisResult::split_once
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1150,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1153
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1153
    functionName: pool_tests::parse_client_info
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - RedisResult::split_once
    - impl combine::Parser::split
    - collect
    - RedisResult::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:1158,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1159,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1160,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1160,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1161,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1162,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1162,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1159,1
    - Dst: Pool::builder
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1167,1
    - Dst: max_size
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1167,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1167,1
    - Dst: LockedSentinelClient::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1169,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1167,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1172,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1174,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1174,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1176,1
    - Dst: try_get
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1180,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1183,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1186,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1186,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1186,1
    - Dst: RedisResult::deref_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1188,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1186,1
    - Dst: parse_client_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1191,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1191,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1196,1
    - Dst: RedisResult::deref_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1196,1
    - Dst: try_get
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1156
    functionDepth: 8
    functionLinenumber: 1156
    functionLinenumberEnd: 1202
    functionName: pool_tests::test_sentinel_client
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - LockedSentinelClient::new
    - Vec::new
    - TestSentinelContext::new
    - Some
    - '&mut Cmd::query'
    - HashSet::new
    - max_size
    - as_str
    - Pool::builder
    - SentinelClient::build
    - '&Vec::clone'
    - unwrap
    - TestSentinelContext::sentinels_connection_info
    - redis::Cmd::arg
    - String::from
    - get
    - try_get
    - assert_is_connection_to_master
    - RedisResult::unwrap
    - RedisResult::deref_mut
    - parse_client_info
    - RedisServer::push
    - TestSentinelContext::sentinel_node_connection_info
    - build
    - redis::cmd
    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:19,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_bignum.rs:19,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_bignum.rs:19,1
    - Dst: ToRedisArgs::to_redis_args
      Src: /src/redis-rs/redis/tests/test_bignum.rs:22,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_bignum.rs:22,1
    - Dst: T::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_bignum.rs:25,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_bignum.rs:25,1
    - Dst: T::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_bignum.rs:28,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_bignum.rs:28,1
    - Dst: T::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_bignum.rs:31,1
    - Dst: T::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_bignum.rs:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - content
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 36
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 36
    functionName: test
    functionSourceFile: /src/redis-rs/redis/tests/test_bignum.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - Value::Int
    - T::from_redis_value_ref
    - Result::unwrap
    - Vec::from
    - ToRedisArgs::to_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn test<T>(content: &str)whereT: FromRedisValue+ ToRedisArgs+ std::str::FromStr+
      std::convert::From<u32>+ std::cmp::PartialEq+ std::fmt::Debug,<T as FromStr>::Err:
      std::fmt::Debug,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::<rust_decimal::Decimal>
      Src: /src/redis-rs/redis/tests/test_bignum.rs:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    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:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    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:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    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:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    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: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:42,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: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:51,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:51,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:51,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:51,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:57,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:58,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:60,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:60,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:60,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:60,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:67,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:68,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:70,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:70,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:70,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:70,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:70,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cache.rs:76,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cache.rs:76,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cache.rs:76,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:77,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:78,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:79,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:81,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:81,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:81,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:81,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:88,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:89,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:90,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cache.rs:91,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 79
    argCount: 1
    argNames:
    - test_with_optin
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 92
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 92
    functionName: test_cache_basic
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Self::set_mode
    - into
    - '&mut Cmd::arg'
    - assert_miss
    - get_cmd
    - Duration::from_millis
    - query_async
    - unwrap
    - Ok::<_, RedisError>
    - CacheConfig::new
    - assert_invalidate
    - CacheConfig::default
    - redis::Cmd::arg
    - '&mut Cmd::query_async'
    - assert_hit
    - supports_resp3
    - futures_time::task::sleep
    - TestContext::async_connection_with_cache_config
    - TestContext::new
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn test_cache_basic(test_with_optin: bool) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:96,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:97,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:98,1
    - Dst: TestContext::async_connection_with_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:101,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:103,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:103,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:103,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:103,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:103,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:103,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:103,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:103,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:103,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:103,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:115,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:115,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:115,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:115,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:120,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:121,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:124,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:124,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:124,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:124,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:124,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:130,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:131,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:137,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:137,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:137,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:138,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:139,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cache.rs:140,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 141
    functionName: cache_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - assert_miss
    - redis::Cmd::arg
    - assert_hit
    - ignore
    - '&mut Cmd::query_async'
    - get_pipe
    - Ok::<_, RedisError>
    - Ok
    - arg
    - query_async
    - redis::cmd
    - TestContext::async_connection_with_cache
    - supports_resp3
    - redis::Pipeline::cmd
    - TestContext::new
    - cmd
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: async fn cache_mget() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_cache.rs:146,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:147,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:148,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:151,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:151,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:152,1
    - Dst: serde_json::to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:154,1
    - Dst: serde_json::to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:155,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:157,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:157,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:157,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:157,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:157,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cache.rs:161,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:157,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:157,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:157,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:157,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:157,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cache.rs:166,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:157,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:157,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:171,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:171,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:171,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:171,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:179,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:180,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:182,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:182,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:182,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:182,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:182,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:182,1
    - Dst: 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: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:195,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:202,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:203,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cache.rs:205,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 206
    functionName: module_cache_json_get_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - Ok
    - serde_json::to_string
    - Self::set_mode
    - clone
    - '&mut Cmd::arg'
    - assert_miss
    - get_cmd
    - get_pipe
    - arg
    - query_async
    - Ok::<_, RedisError>
    - redis::Pipeline::cmd
    - CacheConfig::new
    - cmd
    - redis::Cmd::arg
    - assert_hit
    - TestContext::with_modules
    - supports_resp3
    - TestContext::async_connection_with_cache_config
    - ignore
    linkageType: ''
    returnType: RedisResult
    signature: async fn module_cache_json_get_mget() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_cache.rs:211,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:212,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:213,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:216,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:216,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:217,1
    - Dst: serde_json::to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:219,1
    - Dst: serde_json::to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:220,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:222,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:222,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:222,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:222,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:222,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cache.rs:226,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:222,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:222,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:222,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:222,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:222,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cache.rs:231,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:222,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:222,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:236,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:236,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:236,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:236,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:244,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:245,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:247,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:247,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:247,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:247,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:255,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:256,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:258,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:258,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:258,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:258,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:266,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:267,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:269,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:269,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:269,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:269,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:277,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:278,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:280,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:280,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:280,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:280,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:287,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:288,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:290,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:290,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:290,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:290,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:297,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:298,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:300,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:300,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:300,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:300,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:307,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:308,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cache.rs:310,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 161
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 311
    functionName: module_cache_json_get_mget_different_paths
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - Ok
    - serde_json::to_string
    - Self::set_mode
    - clone
    - '&mut Cmd::arg'
    - assert_miss
    - get_cmd
    - get_pipe
    - arg
    - query_async
    - Ok::<_, RedisError>
    - redis::Pipeline::cmd
    - CacheConfig::new
    - cmd
    - redis::Cmd::arg
    - assert_hit
    - TestContext::with_modules
    - supports_resp3
    - TestContext::async_connection_with_cache_config
    - ignore
    linkageType: ''
    returnType: RedisResult
    signature: async fn module_cache_json_get_mget_different_paths() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:315,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:316,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:317,1
    - Dst: TestContext::async_connection_with_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:320,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_cache.rs:321,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cache.rs:322,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cache.rs:324,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cache.rs:326,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:328,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:329,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cache.rs:330,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 331
    functionName: cache_is_not_target_type_dependent
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - assert_miss
    - assert_hit
    - get
    - Ok
    - set
    - TestContext::async_connection_with_cache
    - supports_resp3
    - TestContext::new
    - Ok::<_, RedisError>
    linkageType: ''
    returnType: RedisResult
    signature: async fn cache_is_not_target_type_dependent() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:335,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:336,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:337,1
    - Dst: TestContext::async_connection_with_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:340,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:342,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:342,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:342,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:342,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:342,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:342,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:342,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:342,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:342,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:342,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:342,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:342,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:358,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:359,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:361,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:361,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:361,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis/tests/test_cache.rs:361,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:361,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis/tests/test_cache.rs:361,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:361,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:361,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:374,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:375,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cache.rs:377,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 73
    argCount: 1
    argNames:
    - atomic
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 378
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 378
    functionName: test_cache_with_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - assert_miss
    - redis::Cmd::arg
    - assert_hit
    - ignore
    - '&mut Cmd::query_async'
    - get_pipe
    - '&mut Cmd::cmd'
    - Ok::<_, RedisError>
    - Ok
    - arg
    - query_async
    - TestContext::async_connection_with_cache
    - supports_resp3
    - redis::Pipeline::cmd
    - TestContext::new
    - cmd
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn test_cache_with_pipeline(atomic: bool) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:383,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:384,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:385,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:388,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:388,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:389,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:390,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:390,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:390,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:390,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
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:400,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:400,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:400,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:400,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:400,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:407,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:408,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:409,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:411,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:411,1
    - Dst: '&mut Cmd::set_cache_config'
      Src: /src/redis-rs/redis/tests/test_cache.rs:411,1
    - Dst: CommandCacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:413,1
    - Dst: Self::set_enable_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:413,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:411,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:411,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:418,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:419,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:421,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:421,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:421,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:421,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:428,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:429,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:431,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:431,1
    - Dst: '&mut Cmd::set_cache_config'
      Src: /src/redis-rs/redis/tests/test_cache.rs:431,1
    - Dst: CommandCacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:433,1
    - Dst: Self::set_enable_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:433,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:431,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:431,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:438,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:439,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:440,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cache.rs:441,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 442
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 442
    functionName: cache_basic_partial_opt_in
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - Self::set_enable_cache
    - Ok
    - Self::set_mode
    - '&mut Cmd::arg'
    - assert_miss
    - CommandCacheConfig::new
    - query_async
    - unwrap
    - Ok::<_, RedisError>
    - CacheConfig::new
    - assert_invalidate
    - redis::Cmd::arg
    - '&mut Cmd::set_cache_config'
    - '&mut Cmd::query_async'
    - assert_hit
    - supports_resp3
    - redis::cmd
    - TestContext::async_connection_with_cache_config
    - TestContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn cache_basic_partial_opt_in() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:447,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:448,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:449,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:452,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:452,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:453,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:455,1
    - Dst: redis::Pipeline::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::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:455,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:455,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:455,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:455,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:455,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:455,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:455,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:455,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:455,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:471,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:472,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:475,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:475,1
    - Dst: redis::Cmd::set_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:475,1
    - Dst: CommandCacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:477,1
    - Dst: Self::set_enable_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:477,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:475,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:475,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:475,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis/tests/test_cache.rs:475,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:475,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:475,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:491,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:492,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cache.rs:494,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 84
    argCount: 1
    argNames:
    - atomic
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 495
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 495
    functionName: test_cache_pipeline_partial_opt_in
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - Self::set_enable_cache
    - Ok
    - redis::Cmd::set_cache_config
    - Self::set_mode
    - '&mut Cmd::arg'
    - assert_miss
    - get_pipe
    - CommandCacheConfig::new
    - arg
    - query_async
    - Ok::<_, RedisError>
    - redis::Pipeline::cmd
    - CacheConfig::new
    - cmd
    - redis::Cmd::arg
    - assert_hit
    - '&mut Cmd::query_async'
    - '&mut Cmd::cmd'
    - Cmd::arg
    - supports_resp3
    - TestContext::async_connection_with_cache_config
    - TestContext::new
    - ignore
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn test_cache_pipeline_partial_opt_in(atomic: bool) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:499,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:500,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:501,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:505,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:505,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:507,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:509,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:510,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:510,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:510,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:510,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:510,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:510,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:518,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:518,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:518,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:518,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:518,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:525,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:526,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:528,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:528,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:528,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:528,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:528,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:535,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:536,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:538,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:538,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:538,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:538,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:544,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:545,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::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:553,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:554,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cache.rs:555,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 87
    argCount: 1
    argNames:
    - test_with_opt_in
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 556
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 556
    functionName: test_cache_different_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - assert_miss
    - CacheConfig::default
    - redis::Cmd::arg
    - assert_hit
    - '&mut Cmd::query_async'
    - TestContext::new
    - get_cmd
    - Ok::<_, RedisError>
    - Ok
    - arg
    - query_async
    - Self::set_mode
    - unwrap
    - TestContext::async_connection_with_cache_config
    - supports_resp3
    - CacheConfig::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn test_cache_different_commands(test_with_opt_in: bool) ->
      RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:563,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:564,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:565,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:569,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:569,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:571,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:574,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_cache.rs:574,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cache.rs:575,1
    - Dst: ConnectionManagerConfig::set_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:574,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:578,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:579,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:581,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:581,1
    - Dst: RedisResult::query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:587,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:587,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:589,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:590,1
    - Dst: RedisResult::query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:592,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:592,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:594,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:595,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_cache.rs:597,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cache.rs:597,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cache.rs:598,1
    - Dst: RedisResult::send_packed_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:601,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:601,1
    - Dst: redis_test::server::RedisServer::new_with_addr_and_modules
      Src: /src/redis-rs/redis/tests/test_cache.rs:604,1
    - Dst: RedisResult::send_packed_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:607,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:607,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:614,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:615,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:617,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 83
    argCount: 1
    argNames:
    - test_with_optin
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 618
      start: 560
    functionDepth: 5
    functionLinenumber: 560
    functionLinenumberEnd: 618
    functionName: test_connection_manager_maintains_statistics_after_crashes
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - Ok
    - RedisResult::send_packed_command
    - Self::set_mode
    - clone
    - assert_miss
    - get_cmd
    - Duration::from_millis
    - is_ok
    - ConnectionManagerConfig::set_cache_config
    - unwrap
    - CacheConfig::new
    - CacheConfig::default
    - RedisResult::arg
    - redis_test::server::RedisServer::new_with_addr_and_modules
    - assert_hit
    - Self::set_max_delay
    - redis::aio::ConnectionManagerConfig::new
    - get_connection_manager_with_config
    - RedisResult::query_async
    - drop
    - redis::cmd
    - client_addr
    - supports_resp3
    - TestContext::new
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn test_connection_manager_maintains_statistics_after_crashes(test_with_optin:
      bool,) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cache.rs:623,1
    - Dst: cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:624,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:624,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:626,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:627,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cache.rs:630,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:631,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:631,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:631,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:633,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:634,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:636,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:636,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:636,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:639,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:640,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:642,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:644,1
    - Dst: redis::cluster_routing::RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cache.rs:645,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:652,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:654,1
    - Dst: redis::cluster_routing::RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cache.rs:655,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:662,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:662,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:662,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:665,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:666,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:667,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cache.rs:668,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 669
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 669
    functionName: cache_async_cluster_reconnect_all_nodes
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - assert_miss
    - CacheConfig::default
    - redis::Cmd::arg
    - route_command
    - TestClusterContext::new_with_cluster_client_builder
    - '&mut Cmd::query_async'
    - assert_hit
    - TestClusterContext::async_connection
    - cache_config
    - Ok
    - redis::cluster_routing::RoutingInfo::MultiNode
    - redis::cmd
    - Ok::<_, RedisError>
    - supports_resp3
    - assert_invalidate
    linkageType: ''
    returnType: RedisResult
    signature: async fn cache_async_cluster_reconnect_all_nodes() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cache.rs:674,1
    - Dst: cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:675,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:675,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:677,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:678,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cache.rs:681,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_cache.rs:683,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_cache.rs:684,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:686,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:686,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:686,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:686,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:691,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:692,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::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:695,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:695,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:695,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:701,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:702,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:708,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:708,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:708,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:709,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:710,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cache.rs:711,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 712
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 712
    functionName: cache_async_cluster_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - assert_miss
    - CacheConfig::default
    - redis::Cmd::arg
    - TestClusterContext::new_with_cluster_client_builder
    - assert_hit
    - '&mut Cmd::query_async'
    - TestClusterContext::async_connection
    - cache_config
    - Ok
    - set
    - query_async
    - arg
    - redis::cmd
    - Ok::<_, RedisError>
    - supports_resp3
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: async fn cache_async_cluster_mget() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:717,1
    - Dst: Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_cache.rs:718,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - atomic
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 723
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 723
    functionName: get_pipe
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 5
    functionsReached:
    - redis::pipe
    - Pipeline::atomic
    linkageType: ''
    returnType: redis::Pipeline
    signature: 'fn get_pipe(atomic: bool) -> redis::Pipeline'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cache.rs:728,1
    - Dst: cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:729,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:729,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:731,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:732,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:734,1
    - Dst: TestContext::get_version
      Src: /src/redis-rs/redis/tests/test_cache.rs:734,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:737,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cache.rs:756,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:757,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:757,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:757,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:757,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:763,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:763,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:763,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:765,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:766,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:767,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:769,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:769,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:769,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:771,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:772,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:774,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:774,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:774,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cache.rs:779,1
    - Dst: filter
      Src: /src/redis-rs/redis/tests/test_cache.rs:779,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/tests/test_cache.rs:781,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cache.rs:779,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cache.rs:783,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cache.rs:783,1
    - Dst: split_once
      Src: /src/redis-rs/redis/tests/test_cache.rs:785,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:785,1
    - Dst: split_once
      Src: /src/redis-rs/redis/tests/test_cache.rs:786,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:786,1
    - Dst: split_once
      Src: /src/redis-rs/redis/tests/test_cache.rs:787,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:787,1
    - Dst: parse
      Src: /src/redis-rs/redis/tests/test_cache.rs:789,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:789,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/tests/test_cache.rs:790,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:790,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:793,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:794,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/tests/test_cache.rs:795,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:795,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cache.rs:779,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cache.rs:800,1
    - Dst: find
      Src: /src/redis-rs/redis/tests/test_cache.rs:800,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cache.rs:802,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:800,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cache.rs:804,1
    - Dst: find
      Src: /src/redis-rs/redis/tests/test_cache.rs:804,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cache.rs:806,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:804,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:809,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:810,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:810,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:810,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:810,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:810,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/tests/test_cache.rs:810,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:816,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:820,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:821,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:821,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:821,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:821,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:821,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/tests/test_cache.rs:821,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:827,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:832,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:833,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:833,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:833,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:833,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:833,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:833,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/tests/test_cache.rs:833,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:840,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cache.rs:843,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cache.rs:843,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cache.rs:843,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:845,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:847,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:852,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:853,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:853,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:853,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:853,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:853,1
    - Dst: take
      Src: /src/redis-rs/redis/tests/test_cache.rs:853,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:859,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:863,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:864,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:864,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:864,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:864,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:864,1
    - Dst: take
      Src: /src/redis-rs/redis/tests/test_cache.rs:864,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:870,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:874,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:875,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:875,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:875,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:882,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:885,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:886,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cache.rs:887,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 282
    argCount: 1
    argNames:
    - migrate
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 888
      start: 727
    functionDepth: 2
    functionLinenumber: 727
    functionLinenumberEnd: 888
    functionName: test_cache_async_cluster_slot_change
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - to_string
    - TestContext::get_version
    - contains
    - TestClusterContext::new_with_cluster_client_builder
    - cache_config
    - Ok
    - to_owned
    - parse
    - into
    - '&mut Cmd::arg'
    - assert_miss
    - Duration::from_millis
    - filter
    - collect
    - query_async
    - arg
    - unwrap
    - Ok::<_, RedisError>
    - assert_invalidate
    - map
    - CacheConfig::default
    - redis::Cmd::arg
    - route_command
    - '&mut Cmd::query_async'
    - assert_hit
    - split
    - TestClusterContext::async_connection
    - split_once
    - iter
    - is_empty
    - get_singe_route
    - parse::<u16>
    - find
    - take
    - redis::cmd
    - futures_time::task::sleep
    - supports_resp3
    - TestContext::new
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn test_cache_async_cluster_slot_change(migrate: bool) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:892,1
    - Dst: Cmd::set_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:894,1
    - Dst: CommandCacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:894,1
    - Dst: Self::set_enable_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - name
    - enable_opt_in
    argTypes:
    - '&str'
    - bool
    constantsTouched: []
    func_position:
      end: 897
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 897
    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:901,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:902,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:903,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:906,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:907,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:909,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:909,1
    - Dst: '&mut Cmd::take'
      Src: /src/redis-rs/redis/tests/test_cache.rs:909,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:910,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:910,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:911,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:911,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:913,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:914,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cache.rs:916,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 917
      start: 900
    functionDepth: 2
    functionLinenumber: 900
    functionLinenumberEnd: 917
    functionName: test_readonly_commands_with_patterns_are_not_cached
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - assert_miss
    - redis::Cmd::arg
    - '&mut Cmd::take'
    - assert_hit
    - TestContext::new
    - Ok
    - supports_resp3
    - redis::cmd
    - Cmd::query_async
    - unwrap
    - Ok::<_, RedisError>
    - TestContext::async_connection_with_cache_config
    - CacheConfig::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn test_readonly_commands_with_patterns_are_not_cached() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:921,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:922,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:923,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:926,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:927,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:929,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:929,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:929,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:929,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:929,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:935,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:935,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:935,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:935,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:941,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:941,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:941,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:941,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:948,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:949,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:950,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:952,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:952,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:952,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:952,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:952,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cache.rs:958,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cache.rs:958,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cache.rs:958,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:960,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:960,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:960,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:960,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:967,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:968,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:969,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cache.rs:971,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 972
      start: 920
    functionDepth: 2
    functionLinenumber: 920
    functionLinenumberEnd: 972
    functionName: test_bitcount_is_handled_correctly
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - assert_miss
    - redis::Cmd::arg
    - '&mut Cmd::query_async'
    - assert_hit
    - TestContext::new
    - Duration::from_millis
    - Ok
    - into
    - supports_resp3
    - query_async
    - redis::cmd
    - futures_time::task::sleep
    - unwrap
    - Ok::<_, RedisError>
    - TestContext::async_connection_with_cache_config
    - CacheConfig::new
    - assert_invalidate
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: async fn test_bitcount_is_handled_correctly() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:976,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:977,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:978,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:980,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:981,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:984,1
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/tests/test_cache.rs:985,1
    - Dst: RedisResult::query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:986,1
    - Dst: RedisResult::query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:988,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:990,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:991,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:993,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 994
      start: 975
    functionDepth: 3
    functionLinenumber: 975
    functionLinenumberEnd: 994
    functionName: test_that_a_pipeline_with_all_commands_cached_does_not_hang
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - assert_miss
    - assert_hit
    - RedisResult::query_async
    - TestContext::new
    - Ok
    - supports_resp3
    - RedisResult::get
    - TestContext::async_connection_with_cache_config
    - CacheConfig::new
    - redis::pipe
    linkageType: ''
    returnType: RedisResult
    signature: async fn test_that_a_pipeline_with_all_commands_cached_does_not_hang()
      -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_types.rs:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 20
    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:24,1
    - Dst: std::io::Error::other
      Src: /src/redis-rs/redis/tests/test_types.rs:24,1
    - Dst: source
      Src: /src/redis-rs/redis/tests/test_types.rs:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: types::test_redis_error_source_presence_for_io_wrapped_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - source
    - std::io::Error::other
    - RedisError::from
    linkageType: ''
    returnType: void
    signature: fn test_redis_error_source_presence_for_io_wrapped_errors()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_types.rs:35,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_types.rs:38,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_types.rs:39,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 52
    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: 82
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 82
    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:114,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:115,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:116,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 124
    functionName: types::test_info_dict
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - parse_redis_value
    - '&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:203,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:204,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 208
    functionName: types::test_role_ret
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - parse_redis_value
    - clone
    linkageType: ''
    returnType: void
    signature: fn test_role_ret()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:217,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:217,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_types.rs:217,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:220,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:220,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_types.rs:220,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:224,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:224,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_types.rs:224,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_types.rs:224,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:228,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:228,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_types.rs:228,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:232,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:232,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_types.rs:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 235
    functionName: types::test_i32
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - to_string
    - Value::BulkString
    - Value::Int
    - Value::SimpleString
    - parse_redis_value
    - into
    linkageType: ''
    returnType: void
    signature: fn test_i32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:240,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:240,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:240,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:244,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:244,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 247
    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:252,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:253,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:253,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: types::test_parse_boxed
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Value::SimpleString
    - parse_redis_value
    - '&str::to_string'
    - String::clone
    linkageType: ''
    returnType: void
    signature: fn test_parse_boxed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:261,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:262,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:262,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:262,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:266,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:266,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 269
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 269
    functionName: types::test_parse_arc
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Value::SimpleString
    - parse_redis_value
    - '&str::to_string'
    - String::clone
    linkageType: ''
    returnType: void
    signature: fn test_parse_arc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:274,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:275,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:275,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:275,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:279,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:279,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 282
    functionName: types::test_parse_rc
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Value::SimpleString
    - parse_redis_value
    - '&str::to_string'
    - String::clone
    linkageType: ''
    returnType: void
    signature: fn test_parse_rc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:287,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:287,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:295,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:296,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:296,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:296,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:300,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:301,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:301,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:301,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:303,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 306
    functionName: types::test_vec
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Self::clone
    - Value::BulkString
    - Value::Array
    - parse_redis_value
    - Vec::from
    linkageType: ''
    returnType: void
    signature: fn test_vec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:311,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:311,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:319,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:320,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:320,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:320,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:324,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:325,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:325,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:325,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:327,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 337
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 337
    functionName: types::test_box_slice
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Self::clone
    - Value::BulkString
    - Value::Array
    - parse_redis_value
    - Vec::from
    linkageType: ''
    returnType: void
    signature: fn test_box_slice()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value::<Arc<[_]>>
      Src: /src/redis-rs/redis/tests/test_types.rs:342,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:342,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:350,1
    - Dst: parse_redis_value::<Arc<[_]>>
      Src: /src/redis-rs/redis/tests/test_types.rs:352,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:352,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:352,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:356,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:358,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:358,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:358,1
    - Dst: parse_redis_value::<Arc<[_]>>
      Src: /src/redis-rs/redis/tests/test_types.rs:360,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 370
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 370
    functionName: types::test_arc_slice
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Self::clone
    - Value::BulkString
    - Value::Array
    - parse_redis_value
    - Vec::from
    - 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:375,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:375,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 379
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 379
    functionName: types::test_single_bool_vec
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - parse_redis_value
    - Value::BulkString
    linkageType: ''
    returnType: void
    signature: fn test_single_bool_vec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:384,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:384,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 388
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 388
    functionName: types::test_single_i32_vec
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - parse_redis_value
    - Value::BulkString
    linkageType: ''
    returnType: void
    signature: fn test_single_i32_vec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:393,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:393,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 397
    functionName: types::test_single_u32_vec
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - parse_redis_value
    - Value::BulkString
    linkageType: ''
    returnType: void
    signature: fn test_single_u32_vec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:402,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:402,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 405
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 405
    functionName: types::test_single_string_vec
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - parse_redis_value
    - Value::BulkString
    linkageType: ''
    returnType: void
    signature: fn test_single_string_vec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:410,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 418
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 418
    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:422,1
    - Dst: parse_redis_value::<Vec<(u8, u8)>>
      Src: /src/redis-rs/redis/tests/test_types.rs:428,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:429,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_types.rs:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 432
    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
    - clone
    - unwrap_err
    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:443,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:443,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:451,1
    - Dst: PathBuf::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:452,1
    - Dst: '&str::into'
      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: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:459,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:459,1
    - Dst: Hasher::default
      Src: /src/redis-rs/redis/tests/test_types.rs:468,1
    - Dst: HashMap::with_hasher
      Src: /src/redis-rs/redis/tests/test_types.rs:469,1
    - Dst: PathBuf::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:470,1
    - Dst: '&str::into'
      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: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:476,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 435
    functionDepth: 7
    functionLinenumber: 435
    functionLinenumberEnd: 479
    functionName: types::test_hashmap
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - HashMap::with_hasher
    - Value::Array
    - parse_redis_value
    - HashMap::new
    - Hasher::default
    - PathBuf::insert
    linkageType: ''
    returnType: void
    signature: fn test_hashmap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:499,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:499,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:499,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:500,1
    - Dst: PathBuf::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:501,1
    - Dst: '&str::into'
      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: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:509,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:509,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:509,1
    - Dst: Hasher::default
      Src: /src/redis-rs/redis/tests/test_types.rs:511,1
    - Dst: HashMap::with_hasher
      Src: /src/redis-rs/redis/tests/test_types.rs:512,1
    - Dst: PathBuf::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:513,1
    - Dst: '&str::into'
      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: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:519,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 522
      start: 483
    functionDepth: 7
    functionLinenumber: 483
    functionLinenumberEnd: 522
    functionName: types::test_hashbrown_hashmap
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - HashMap::with_hasher
    - Value::Array
    - parse_redis_value
    - HashMap::new
    - Hasher::default
    - PathBuf::insert
    - clone
    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:530,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:530,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_types.rs:536,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:537,1
    - Dst: '&str::to_string'
      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: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:543,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:543,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_types.rs:546,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_types.rs:547,1
    - Dst: '&str::to_string'
      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: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:551,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_types.rs:554,1
    - Dst: std::iter::Chain::collect
      Src: /src/redis-rs/redis/tests/test_types.rs:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 526
    functionDepth: 7
    functionLinenumber: 526
    functionLinenumberEnd: 559
    functionName: types::test_hashbrown_hashset
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - HashSet::new
    - into_iter
    - to_redis_args
    - RedisServer::insert
    - Value::Array
    - Value::Int
    - parse_redis_value
    - insert
    - '&str::to_string'
    - std::iter::Chain::collect
    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:564,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:564,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:564,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:567,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:567,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:567,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:571,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:571,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:571,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:574,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:574,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:574,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:577,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:577,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:577,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:581,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:581,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:581,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:584,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:587,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:590,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:590,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:593,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 596
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 596
    functionName: types::test_bool
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - Value::BulkString
    - Value::SimpleString
    - Value::Int
    - parse_redis_value
    linkageType: ''
    returnType: void
    signature: fn test_bool()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:605,1
    - Dst: Bytes::from_static
      Src: /src/redis-rs/redis/tests/test_types.rs:606,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:608,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:608,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:612,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:612,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:612,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:615,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:618,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:621,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:621,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:624,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 627
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 627
    functionName: types::test_bytes
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - Bytes::from_static
    - Value::BulkString
    - Value::SimpleString
    - Value::Int
    - parse_redis_value
    - Vec::from
    linkageType: ''
    returnType: void
    signature: fn test_bytes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Uuid::from_str
      Src: /src/redis-rs/redis/tests/test_types.rs:636,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:636,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_types.rs:637,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/tests/test_types.rs:637,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:639,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:639,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:643,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:643,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:643,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:646,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:649,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:652,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:652,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:655,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 657
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 657
    functionName: types::test_uuid
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - '&str::into'
    - as_bytes
    - Value::BulkString
    - to_vec
    - Value::SimpleString
    - Value::Int
    - Result::unwrap
    - 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:665,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:668,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:668,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:672,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:672,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:672,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:675,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:679,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:679,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:679,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:682,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:685,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:685,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:688,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 691
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 691
    functionName: types::test_cstring
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - Value::BulkString
    - Value::SimpleString
    - Value::Int
    - parse_redis_value
    - 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: 742
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 742
    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:750,1
    - Dst: Result::to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:757,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_types.rs:763,1
    - Dst: "into_iter()\n            .collect::<BTreeMap<_, _>>"
      Src: /src/redis-rs/redis/tests/test_types.rs:763,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 770
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 770
    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:776,1
    - Dst: TlsFilePaths::to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:777,1
    - Dst: Result::to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 789
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 789
    functionName: types::test_cow_types_to_redis_args
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Result::to_redis_args
    - TlsFilePaths::to_redis_args
    - '&str::to_string'
    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:796,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_types.rs:796,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:800,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:803,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_types.rs:804,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_types.rs:804,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:805,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:805,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_types.rs:804,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_types.rs:808,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/test_types.rs:809,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:809,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:811,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 813
      start: 792
    functionDepth: 8
    functionLinenumber: 792
    functionLinenumberEnd: 813
    functionName: types::test_large_usize_array_to_redis_args_and_back
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - Vec::new
    - to_redis_args
    - enumerate
    - Value::BulkString
    - collect
    - Value::Array
    - io::Result::unwrap
    - iter
    - encode_value
    - clone
    - Result::unwrap
    - Result::iter_mut
    - map
    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:820,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_types.rs:820,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:824,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:828,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_types.rs:828,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_types.rs:828,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:828,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_types.rs:828,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_types.rs:829,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/test_types.rs:830,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:830,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:832,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 834
      start: 816
    functionDepth: 8
    functionLinenumber: 816
    functionLinenumberEnd: 834
    functionName: types::test_large_u8_array_to_redis_args_and_back
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - Vec::new
    - to_redis_args
    - enumerate
    - io::Result::unwrap
    - collect
    - Value::Array
    - Value::Int
    - iter
    - encode_value
    - Result::unwrap
    - Result::iter_mut
    - map
    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:840,1
    - Dst: String::new
      Src: /src/redis-rs/redis/tests/test_types.rs:840,1
    - Dst: Result::iter_mut
      Src: /src/redis-rs/redis/tests/test_types.rs:841,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_types.rs:841,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:845,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:848,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_types.rs:849,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_types.rs:849,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:850,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:850,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_types.rs:849,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_types.rs:853,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/test_types.rs:854,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:854,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:856,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 858
      start: 837
    functionDepth: 8
    functionLinenumber: 837
    functionLinenumberEnd: 858
    functionName: types::test_large_string_array_to_redis_args_and_back
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - Vec::new
    - to_redis_args
    - enumerate
    - Value::BulkString
    - collect
    - Value::Array
    - io::Result::unwrap
    - iter
    - encode_value
    - String::new
    - clone
    - Result::unwrap
    - Result::iter_mut
    - map
    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:866,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:869,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_types.rs:870,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_types.rs:870,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:871,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:871,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_types.rs:870,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_types.rs:874,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/test_types.rs:875,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:875,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:877,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:877,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:880,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 882
      start: 861
    functionDepth: 8
    functionLinenumber: 861
    functionLinenumberEnd: 882
    functionName: types::test_0_length_usize_array_to_redis_args_and_back
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - Vec::new
    - to_redis_args
    - Value::BulkString
    - io::Result::unwrap
    - collect
    - Value::Array
    - iter
    - encode_value
    - clone
    - Result::unwrap
    - map
    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:888,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:888,1
    - Dst: redis::FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:891,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:891,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:896,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 912
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 912
    functionName: types::test_attributes
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - RedisResult::unwrap
    - parse_redis_value
    - redis::FromRedisValue::from_redis_value_ref
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_attributes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:917,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:927,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 937
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 937
    functionName: types::arrays_to_tuples
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - parse_redis_value
    - 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:942,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:973,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:973,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:975,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:976,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:976,1
    - Dst: '&str::to_string'
      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: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:979,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:980,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:980,1
    - Dst: '&str::to_string'
      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: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:984,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:985,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:985,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 999
      start: 940
    functionDepth: 7
    functionLinenumber: 940
    functionLinenumberEnd: 999
    functionName: types::test_complex_nested_tuples
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - RedisServer::insert
    - Value::Array
    - parse_redis_value
    - HashMap::new
    - unwrap
    - '&str::to_string'
    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:1004,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:1037,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:1037,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:1039,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:1040,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:1040,1
    - Dst: '&str::to_string'
      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: HashSet::new
      Src: /src/redis-rs/redis/tests/test_types.rs:1042,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:1043,1
    - Dst: '&str::to_string'
      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: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:1047,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:1048,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:1048,1
    - Dst: '&str::to_string'
      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: HashSet::new
      Src: /src/redis-rs/redis/tests/test_types.rs:1050,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:1051,1
    - Dst: '&str::to_string'
      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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1002
    functionDepth: 7
    functionLinenumber: 1002
    functionLinenumberEnd: 1063
    functionName: types::test_complex_nested_tuples_resp3
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - HashSet::new
    - RedisServer::insert
    - Value::Array
    - parse_redis_value
    - HashMap::new
    - unwrap
    - '&str::to_string'
    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:24,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:24,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:24,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:24,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:24,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:29,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:29,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:29,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - con
    argTypes:
    - ClusterConnection
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: cluster::smoke_test_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - exec
    - RedisResult::unwrap
    - '&mut Cmd::exec'
    - redis::cmd
    - '&mut Cmd::arg'
    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:44,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:45,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: cluster::test_cluster_basics
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - smoke_test_connection
    - Result::connection
    - TestClusterContext::new
    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:53,1
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:58,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 9
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: cluster::test_default_reject_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - ClusterType::get_intended
    - TestClusterContext::new_with_config
    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:71,1
    - Dst: TestClusterContext::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:76,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:80,1
    - Dst: danger_accept_invalid_hostnames
      Src: /src/redis-rs/redis/tests/test_cluster.rs:82,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:85,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 68
    functionDepth: 9
    functionLinenumber: 68
    functionLinenumberEnd: 86
    functionName: cluster::test_danger_accept_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - danger_accept_invalid_hostnames
    - Default::default
    - Result::connection
    - TestClusterContext::new_with_config_and_builder
    - smoke_test_connection
    - ClusterType::get_intended
    linkageType: ''
    returnType: void
    signature: fn test_danger_accept_invalid_hostnames()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:90,1
    - Dst: username
      Src: /src/redis-rs/redis/tests/test_cluster.rs:91,1
    - Dst: RedisCluster::username
      Src: /src/redis-rs/redis/tests/test_cluster.rs:92,1
    - Dst: '&''static str::password'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:91,1
    - Dst: RedisCluster::password
      Src: /src/redis-rs/redis/tests/test_cluster.rs:93,1
    - Dst: Result::disable_default_user
      Src: /src/redis-rs/redis/tests/test_cluster.rs:95,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:97,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 98
    functionName: cluster::test_cluster_with_username_and_password
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - RedisCluster::password
    - username
    - RedisCluster::username
    - TestClusterContext::new_with_cluster_client_builder
    - Result::connection
    - smoke_test_connection
    - '&''static str::password'
    - Result::disable_default_user
    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:102,1
    - Dst: username
      Src: /src/redis-rs/redis/tests/test_cluster.rs:103,1
    - Dst: RedisCluster::username
      Src: /src/redis-rs/redis/tests/test_cluster.rs:104,1
    - Dst: '&''static str::password'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: cluster::test_cluster_with_bad_password
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - username
    - RedisCluster::username
    - TestClusterContext::new_with_cluster_client_builder
    - '&''static str::password'
    linkageType: ''
    returnType: void
    signature: fn test_cluster_with_bad_password()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:112,1
    - Dst: RedisClusterConfiguration::single_replica_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:113,1
    - Dst: read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster.rs:114,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:116,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:119,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:119,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:119,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:119,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:119,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:124,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:124,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:124,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 111
    functionDepth: 9
    functionLinenumber: 111
    functionLinenumberEnd: 136
    functionName: cluster::test_cluster_read_from_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - RedisClusterConfiguration::single_replica_config
    - Result::connection
    - exec
    - TestClusterContext::new_with_config_and_builder
    - RedisResult::unwrap
    - '&mut Cmd::exec'
    - read_from_replicas
    - redis::cmd
    - '&mut Cmd::arg'
    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:140,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:141,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:143,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:143,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:143,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:143,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:143,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_cluster.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 157
    functionName: cluster::test_cluster_eval
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - TestClusterContext::new
    - Result::connection
    - arg
    - query
    - redis::cmd
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_cluster_eval()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster.rs:161,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_cluster.rs:161,1
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:164,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:166,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_cluster.rs:168,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:168,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::hgetall
      Src: /src/redis-rs/redis/tests/test_cluster.rs:170,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 160
    functionDepth: 8
    functionLinenumber: 160
    functionLinenumberEnd: 185
    functionName: cluster::test_cluster_resp3
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - ProtocolVersion::supports_resp3
    - Result::connection
    - bool::hgetall
    - bool::hset
    - use_protocol
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: fn test_cluster_resp3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:189,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:191,1
    - Dst: bool::mset
      Src: /src/redis-rs/redis/tests/test_cluster.rs:193,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:193,1
    - Dst: bool::mget
      Src: /src/redis-rs/redis/tests/test_cluster.rs:197,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 199
    functionName: cluster::test_cluster_multi_shard_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - bool::mget
    - TestClusterContext::new
    - Result::connection
    - RedisResult::unwrap
    - unwrap
    - bool::mset
    linkageType: ''
    returnType: void
    signature: fn test_cluster_multi_shard_commands()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:204,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:205,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:207,1
    - Dst: key
      Src: /src/redis-rs/redis/tests/test_cluster.rs:215,1
    - Dst: key
      Src: /src/redis-rs/redis/tests/test_cluster.rs:215,1
    - Dst: invoke
      Src: /src/redis-rs/redis/tests/test_cluster.rs:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 217
    functionName: cluster::test_cluster_script
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::Script::new
    - key
    - Result::connection
    - invoke
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: fn test_cluster_script()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:221,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:222,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:223,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:225,1
    - Dst: ClusterPipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:225,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:225,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:225,1
    - Dst: "cmd(\"SET\")\n            .arg(\"key_1\")\n            .arg(42)\n    \
        \        .query::<Vec<String>>"
      Src: /src/redis-rs/redis/tests/test_cluster.rs:225,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 233
    functionName: cluster::test_cluster_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - unwrap
    - ClusterPipeline::cmd
    - "cmd(\"SET\")\n            .arg(\"key_1\")\n            .arg(42)\n         \
      \   .query::<Vec<String>>"
    - Result::connection
    - Result::wait_for_cluster_up
    - cluster_pipe
    - '&mut Cmd::arg'
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: fn test_cluster_pipeline()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:238,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:239,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:240,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:242,1
    - Dst: ClusterPipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:242,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:242,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:242,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:242,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:242,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:242,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:242,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:242,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:242,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:242,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:256,1
    - Dst: ClusterPipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:256,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:256,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:256,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:256,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:256,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:256,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:256,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_cluster.rs:265,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:265,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_cluster.rs:268,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 270
    functionName: cluster::test_cluster_pipeline_multiple_keys
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - redis::Cmd::arg
    - unwrap
    - ClusterPipeline::cmd
    - Result::connection
    - arg
    - "cmd(\"HGET\")\n            .arg(\"hash_1\")\n            .arg(\"key_1\")\n\
      \            .cmd(\"ZCARD\")\n            .arg(\"zset\")\n            .query::<Vec<redis::Value>>"
    - Result::wait_for_cluster_up
    - Cmd::arg
    - cluster_pipe
    - "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>>"
    - '&mut Cmd::arg'
    - cmd
    - Result::unwrap
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: fn test_cluster_pipeline_multiple_keys()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:274,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:275,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:276,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:278,1
    - Dst: ClusterPipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:278,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:278,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:278,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster.rs:278,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:278,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:278,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:278,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:292,1
    - Dst: ClusterPipeline::keys
      Src: /src/redis-rs/redis/tests/test_cluster.rs:292,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:292,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 298
    functionName: cluster::test_cluster_pipeline_invalid_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - ClusterPipeline::keys
    - ClusterPipeline::cmd
    - ignore
    - RedisResult::unwrap_err
    - Result::connection
    - exec
    - unwrap_err
    - Result::wait_for_cluster_up
    - cluster_pipe
    - '&mut Cmd::arg'
    - cmd
    - TestClusterContext::new
    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:302,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:303,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:304,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:305,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:307,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:308,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:310,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:311,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster.rs:312,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster.rs:312,1
    - Dst: Pipeline::exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:314,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:314,1
    - Dst: Pipeline::clear
      Src: /src/redis-rs/redis/tests/test_cluster.rs:316,1
    - Dst: Pipeline::get
      Src: /src/redis-rs/redis/tests/test_cluster.rs:318,1
    - Dst: query::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:321,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 323
      start: 301
    functionDepth: 7
    functionLinenumber: 301
    functionLinenumberEnd: 323
    functionName: cluster::test_cluster_pipeline_command_ordering
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - Pipeline::get
    - unwrap
    - Pipeline::exec
    - Vec::new
    - ignore
    - Pipeline::clear
    - Result::connection
    - query::<Vec<String>>
    - RedisResult::unwrap
    - Result::wait_for_cluster_up
    - Pipeline::set
    - cluster_pipe
    - RedisServer::push
    - TestClusterContext::new
    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:328,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:329,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:330,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:331,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:333,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:334,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:337,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:337,1
    - Dst: '&mut Cmd::ignore'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:337,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster.rs:341,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster.rs:341,1
    - Dst: RedisServer::push
      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: Pipeline::exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:346,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:346,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_cluster.rs:348,1
    - Dst: std::time::Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_cluster.rs:348,1
    - Dst: Pipeline::clear
      Src: /src/redis-rs/redis/tests/test_cluster.rs:350,1
    - Dst: Pipeline::get
      Src: /src/redis-rs/redis/tests/test_cluster.rs:352,1
    - Dst: query::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:355,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 327
    functionDepth: 7
    functionLinenumber: 327
    functionLinenumberEnd: 357
    functionName: cluster::test_cluster_pipeline_ordering_with_improper_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - RedisResult::unwrap_err
    - std::thread::sleep
    - '&mut Cmd::ignore'
    - Result::wait_for_cluster_up
    - Pipeline::cmd
    - cluster_pipe
    - Pipeline::set
    - std::time::Duration::from_secs
    - unwrap
    - TestClusterContext::new
    - Pipeline::get
    - redis::Cmd::arg
    - Result::connection
    - RedisServer::push
    - Pipeline::exec
    - Pipeline::clear
    - query::<Vec<String>>
    - ignore
    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:364,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:365,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:366,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:366,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:366,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:366,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:367,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:367,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:368,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:368,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster.rs:368,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:374,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:374,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:378,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:378,1
    - Dst: arg("test").query::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 381
    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:
    - MockEnv::new
    - '&str::into'
    - contains_slice
    - Value::SimpleString
    - Ok
    - Value::Array
    - arg("test").query::<Value>
    - Cmd::arg
    - Err
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_cluster_can_connect_to_server_that_sends_cluster_slots_with_null_host_name()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:388,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:389,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:390,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:390,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:390,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:390,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:391,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:391,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:392,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:392,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster.rs:392,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:411,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:411,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:415,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:415,1
    - Dst: arg("test").query::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 417
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 417
    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:
    - MockEnv::new
    - '&str::into'
    - contains_slice
    - Value::SimpleString
    - Ok
    - Value::Array
    - arg("test").query::<Value>
    - Cmd::arg
    - Err
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_cluster_can_connect_to_server_that_sends_cluster_slots_with_partial_nodes_with_unknown_host_name()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atomic::AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:423,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:428,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:429,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:429,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster.rs:432,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:434,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:435,1
    - Dst: parse_redis_value
      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: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:436,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:436,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:436,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:441,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:441,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 444
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 444
    functionName: cluster::test_cluster_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - arg("test").query::<Option<i32>>
    - '&str::to_vec'
    - atomic::AtomicUsize::new
    - Value::BulkString
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - parse_redis_value
    - ClusterClientBuilder::retries
    - fetch_add
    - respond_startup
    - Cmd::arg
    - Err
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_cluster_retries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:450,1
    - Dst: atomic::AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:450,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:456,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:457,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:457,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:460,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster.rs:462,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:463,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:464,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:464,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:469,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:469,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 476
      start: 447
    functionDepth: 7
    functionLinenumber: 447
    functionLinenumberEnd: 476
    functionName: cluster::test_cluster_exhaust_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - arg("test").query::<Option<i32>>
    - Arc::new
    - atomic::AtomicUsize::new
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - parse_redis_value
    - ClusterClientBuilder::retries
    - fetch_add
    - respond_startup
    - clone
    - Cmd::arg
    - Err
    - cmd
    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:482,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:483,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:488,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster.rs:489,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster.rs:490,1
    - Dst: RedisServer::store
      Src: /src/redis-rs/redis/tests/test_cluster.rs:492,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:494,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:495,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:495,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:495,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:495,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:498,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:502,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:502,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:504,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:504,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster.rs:504,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:525,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:525,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:525,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:525,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:530,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:530,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:530,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 533
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 533
    functionName: cluster::test_cluster_move_error_when_new_node_is_added
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - '&str::to_vec'
    - atomic::AtomicUsize::new
    - Ok
    - Value::Array
    - parse_redis_value
    - fetch_add
    - '&str::into'
    - Value::BulkString
    - cmd
    - MockEnv::new
    - atomic::AtomicBool::new
    - contains_slice
    - Value::SimpleString
    - Cmd::arg
    - Err
    - arg("test").query::<Option<i32>>
    - RedisServer::load
    - respond_startup
    - RedisServer::store
    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:538,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:538,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:543,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:544,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:548,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:551,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:554,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:554,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:562,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:562,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:566,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:566,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:566,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:566,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:576,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:576,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:576,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 579
      start: 536
    functionDepth: 7
    functionLinenumber: 536
    functionLinenumberEnd: 579
    functionName: cluster::test_cluster_ask_redirect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - arg("test").query::<Option<i32>>
    - Arc::new
    - '&str::to_vec'
    - Value::BulkString
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - AtomicI32::new
    - RedisServer::fetch_add
    - parse_redis_value
    - Cmd::arg
    - respond_startup_two_nodes
    - Err
    - cmd
    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:585,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:586,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:592,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster.rs:593,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster.rs:594,1
    - Dst: RedisServer::store
      Src: /src/redis-rs/redis/tests/test_cluster.rs:596,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:598,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:599,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:599,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:599,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:599,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:602,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:606,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:606,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:607,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:612,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:612,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:617,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:617,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:617,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:617,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:625,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:625,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:625,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 628
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 628
    functionName: cluster::test_cluster_ask_error_when_new_node_is_added
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - '&str::to_vec'
    - atomic::AtomicUsize::new
    - Ok
    - parse_redis_value
    - fetch_add
    - '&str::into'
    - Value::BulkString
    - cmd
    - MockEnv::new
    - as_bytes
    - atomic::AtomicBool::new
    - contains_slice
    - Value::SimpleString
    - Cmd::arg
    - Err
    - arg("test").query::<Option<i32>>
    - RedisServer::load
    - respond_startup
    - RedisServer::store
    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:639,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:640,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:640,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster.rs:640,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster.rs:645,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:648,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:648,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:648,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:648,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:654,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:654,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:654,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:662,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:663,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:663,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster.rs:663,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster.rs:668,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:670,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:670,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:670,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:670,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:676,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:676,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:676,1
    - Dst: "arg(\"test\")\n            .arg(\"123\")\n            .query::<Option<Value>>"
      Src: /src/redis-rs/redis/tests/test_cluster.rs:676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 681
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 681
    functionName: cluster::test_cluster_replica_read
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - arg("test").query::<Option<i32>>
    - '&str::into'
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica
    - '&str::to_vec'
    - Value::BulkString
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - Value::SimpleString
    - "arg(\"test\")\n            .arg(\"123\")\n            .query::<Option<Value>>"
    - ClusterClientBuilder::retries
    - Cmd::arg
    - Err
    - cmd
    - '&mut Cmd::arg'
    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:686,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:686,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:691,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:692,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:692,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:695,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:700,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:701,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:701,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster.rs:701,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:701,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:705,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:705,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:705,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:705,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:711,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:711,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 714
      start: 684
    functionDepth: 7
    functionLinenumber: 684
    functionLinenumberEnd: 714
    functionName: cluster::test_cluster_io_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - arg("test").query::<Option<i32>>
    - Arc::new
    - RedisError::from
    - std::io::Error::new
    - Value::BulkString
    - '&str::to_vec'
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - AtomicI32::new
    - RedisServer::fetch_add
    - ClusterClientBuilder::retries
    - Cmd::arg
    - respond_startup_two_nodes
    - Err
    - cmd
    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:719,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:719,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:720,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:721,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:723,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:726,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:727,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:727,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster.rs:727,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster.rs:727,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:731,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:731,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 738
      start: 717
    functionDepth: 7
    functionLinenumber: 717
    functionLinenumberEnd: 738
    functionName: cluster::test_cluster_non_retryable_error_should_not_retry
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - arg("test").query::<Option<i32>>
    - MockEnv::new
    - Self::fetch_add
    - Self::clone
    - Arc::new
    - cmd
    - AtomicI32::new
    - Cmd::arg
    - respond_startup_two_nodes
    - Err
    - into
    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:746,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:746,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:746,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:747,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:748,1
    - Dst: RedisFuture::split_whitespace
      Src: /src/redis-rs/redis/tests/test_cluster.rs:749,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:750,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:752,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:758,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:759,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:759,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster.rs:759,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:764,1
    - Dst: Option<Vec<MockSlotRange>>::clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:767,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster.rs:770,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:770,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:770,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:771,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:771,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:771,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:771,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:773,1
    - Dst: query::<Option<()>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:777,1
    - Dst: RedisServer::lock
      Src: /src/redis-rs/redis/tests/test_cluster.rs:778,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:778,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster.rs:778,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: 781
      start: 740
    functionDepth: 7
    functionLinenumber: 740
    functionLinenumberEnd: 781
    functionName: cluster::test_cluster_fan_out
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - RedisFuture::split_whitespace
    - Vec::new
    - Arc::new
    - MockEnv::with_client_builder
    - Ok
    - RedisServer::clone
    - '&str::into'
    - std::sync::Mutex::new
    - Cmd::get_packed_command
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - Value::SimpleString
    - ClusterClient::builder
    - Self::lock
    - redis::Cmd::new
    - Cmd::arg
    - push
    - Err
    - RedisServer::lock
    - Self::unwrap
    - sort
    - ClusterClientBuilder::retries
    - Option<Vec<MockSlotRange>>::clone
    - query::<Option<()>>
    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:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 791
      start: 784
    functionDepth: 8
    functionLinenumber: 784
    functionLinenumberEnd: 791
    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:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 801
      start: 794
    functionDepth: 8
    functionLinenumber: 794
    functionLinenumberEnd: 801
    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:805,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 822
      start: 804
    functionDepth: 8
    functionLinenumber: 804
    functionLinenumberEnd: 822
    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:826,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 853
      start: 825
    functionDepth: 8
    functionLinenumber: 825
    functionLinenumberEnd: 853
    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:858,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:859,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:859,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:859,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:864,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:865,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:865,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster.rs:865,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:870,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/tests/test_cluster.rs:871,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:871,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cluster.rs:872,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/tests/test_cluster.rs:872,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster.rs:875,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:876,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:876,1
    - Dst: into_bytes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:877,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster.rs:872,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:884,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:884,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster.rs:884,1
    - Dst: query::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:888,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:888,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 890
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 890
    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:
    - contains
    - MockEnv::with_client_builder
    - Ok
    - Value::Array
    - std::str::from_utf8
    - Some
    - '&mut Cmd::arg'
    - filter_map
    - Value::BulkString
    - collect
    - arg
    - unwrap
    - into_bytes
    - cmd
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - ClusterClient::builder
    - iter
    - Cmd::arg
    - Err
    - ClusterClientBuilder::retries
    - query::<Vec<String>>
    linkageType: ''
    returnType: void
    signature: fn test_cluster_split_multi_shard_command_and_combine_arrays_of_values()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:895,1
    - Dst: RedisResult::atomic
      Src: /src/redis-rs/redis/tests/test_cluster.rs:896,1
    - Dst: '&mut Pipeline::set'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:896,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster.rs:896,1
    - Dst: RedisResult::get_packed_pipeline
      Src: /src/redis-rs/redis/tests/test_cluster.rs:897,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:903,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:904,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:904,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster.rs:904,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:909,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:920,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:920,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster.rs:920,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:922,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:922,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster.rs:922,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:922,1
    - Dst: bool::req_packed_commands
      Src: /src/redis-rs/redis/tests/test_cluster.rs:929,1
    - Dst: RedisFuture::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:929,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 939
      start: 893
    functionDepth: 8
    functionLinenumber: 893
    functionLinenumberEnd: 939
    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:
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - RedisError::from
    - get
    - std::io::Error::new
    - RedisFuture::unwrap
    - Err
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - RedisResult::get_packed_pipeline
    - Ok
    - Value::Array
    - bool::req_packed_commands
    - ClusterClientBuilder::retries
    - RedisResult::atomic
    - redis::pipe
    - '&mut Pipeline::set'
    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:944,1
    - Dst: RedisResult::atomic
      Src: /src/redis-rs/redis/tests/test_cluster.rs:945,1
    - Dst: '&mut Pipeline::set'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:945,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster.rs:945,1
    - Dst: RedisResult::get_packed_pipeline
      Src: /src/redis-rs/redis/tests/test_cluster.rs:946,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster.rs:956,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:957,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:963,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:964,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:964,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster.rs:964,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:969,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:971,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:971,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:971,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:973,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:973,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster.rs:973,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:973,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:980,1
    - Dst: RedisFuture::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 982
      start: 942
    functionDepth: 8
    functionLinenumber: 942
    functionLinenumberEnd: 982
    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:
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - RedisError::from
    - get
    - std::io::Error::new
    - RedisFuture::unwrap
    - Err
    - Value::Array
    - MockEnv::with_client_builder
    - RedisResult::get_packed_pipeline
    - ClusterClient::builder
    - Ok
    - bool::req_packed_command
    - ClusterClientBuilder::retries
    - clone
    - RedisResult::atomic
    - redis::pipe
    - '&mut Pipeline::set'
    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:987,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1004,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1005,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1005,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1005,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1010,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1013,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1015,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1015,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1015,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1015,1
    - Dst: bool::req_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1019,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 985
    functionDepth: 2
    functionLinenumber: 985
    functionLinenumberEnd: 1021
    functionName: cluster::test_cluster_can_be_created_with_partial_slot_coverage
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - Value::SimpleString
    - bool::req_command
    - ClusterClientBuilder::retries
    - redis::cmd
    - Some
    - clone
    - Err
    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:1026,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1026,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1028,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1029,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1031,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1032,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1033,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1037,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1024
    functionDepth: 5
    functionLinenumber: 1024
    functionLinenumberEnd: 1041
    functionName: cluster::test_cluster_handle_complete_server_disconnect_without_panicking
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new_with_cluster_client_builder
    - RoutingInfo::SingleNode
    - Result::connection
    - drop
    - bool::req_packed_command
    - Cmd::get_packed_command
    - retries
    - bool::route_command
    - cmd
    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:1045,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1046,1
    - Dst: Result::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1049,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1051,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1052,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1054,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1057,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1057,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1062,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1062,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1066,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1068,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1071,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1072,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1044
    functionDepth: 10
    functionLinenumber: 1044
    functionLinenumberEnd: 1075
    functionName: cluster::test_cluster_reconnect_after_complete_server_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - RoutingInfo::SingleNode
    - Result::connection
    - RedisCluster::new
    - drop
    - RedisResult::unwrap
    - bool::req_packed_command
    - Result::get_ports
    - Cmd::get_packed_command
    - retries
    - bool::route_command
    - cmd
    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:1079,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1080,1
    - Dst: Result::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1083,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1085,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1086,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1089,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1091,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1094,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1096,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1099,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1101,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1078
    functionDepth: 10
    functionLinenumber: 1078
    functionLinenumberEnd: 1106
    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
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - RedisCluster::new
    - Result::connection
    - drop
    - RedisResult::unwrap
    - RoutingInfo::MultiNode
    - Result::get_ports
    - Some
    - retries
    - bool::route_command
    - cmd
    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:1110,1
    - Dst: TestClusterContext::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1111,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1113,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1113,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1113,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1117,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1117,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1109
    functionDepth: 9
    functionLinenumber: 1109
    functionLinenumberEnd: 1122
    functionName: cluster::fail_on_empty_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new
    - query::<String>
    - redis::Cmd::new
    - TestClusterContext::connection
    - cluster_pipe
    - unwrap_err
    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:1131,1
    - Dst: support::mtls_test::create_cluster_client_from_cluster
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1133,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1133,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1134,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1134,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1136,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1136,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1136,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1136,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1136,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1141,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1141,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1141,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1130
    functionDepth: 2
    functionLinenumber: 1130
    functionLinenumberEnd: 1152
    functionName: cluster::test_cluster_basics_with_mtls
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - support::mtls_test::create_cluster_client_from_cluster
    - exec
    - RedisResult::unwrap
    - get_connection
    - '&mut Cmd::exec'
    - TestClusterContext::new_with_mtls
    - redis::cmd
    - Result::unwrap
    - '&mut Cmd::arg'
    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:1156,1
    - Dst: support::mtls_test::create_cluster_client_from_cluster
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1158,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1158,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1159,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1161,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1161,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1161,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1161,1
    - Dst: bool::is_ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1155
    functionDepth: 10
    functionLinenumber: 1155
    functionLinenumberEnd: 1184
    functionName: cluster::test_cluster_should_not_connect_without_mtls
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - first
    - support::mtls_test::create_cluster_client_from_cluster
    - get_connection
    - TestClusterContext::new_with_mtls
    - connection_info
    - bool::is_ok
    - unwrap
    - Result::unwrap
    - addr
    linkageType: ''
    returnType: void
    signature: fn test_cluster_should_not_connect_without_mtls()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_script.rs:12,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_script.rs:13,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_script.rs:15,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_script.rs:17,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_script.rs:17,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_script.rs:17,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_script.rs:17,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_script.rs:17,1
    - Dst: key
      Src: /src/redis-rs/redis/tests/test_script.rs:22,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_script.rs:22,1
    - Dst: invoke
      Src: /src/redis-rs/redis/tests/test_script.rs:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 11
    functionDepth: 2
    functionLinenumber: 11
    functionLinenumberEnd: 25
    functionName: script::test_script
    functionSourceFile: /src/redis-rs/redis/tests/test_script.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - redis::Script::new
    - key
    - exec
    - RedisResult::unwrap
    - TestContext::connection
    - arg
    - redis::cmd
    - TestContext::new
    - invoke
    - '&mut Cmd::arg'
    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::connection
    - redis::Script::new
    - TestContext::new
    - 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:
    - redis::Script::new
    - ScriptInvocation::load
    - TestContext::connection
    - prepare_invoke
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_script_load_through_invocation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_script.rs:53,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_script.rs:54,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_script.rs:56,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_script.rs:57,1
    - Dst: redis::Pipeline::invoke_script
      Src: /src/redis-rs/redis/tests/test_script.rs:57,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_script.rs:58,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_script.rs:58,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_script.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: script::test_script_that_is_not_loaded_fails_on_pipeline_invocation
    functionSourceFile: /src/redis-rs/redis/tests/test_script.rs
    functionUses: 0
    functionsReached:
    - redis::Script::new
    - redis::Pipeline::invoke_script
    - TestContext::connection
    - arg
    - query
    - TestContext::new
    - 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:
    - redis::Script::new
    - invoke_script
    - TestContext::connection
    - arg
    - query
    - unwrap
    - TestContext::new
    - redis::pipe
    - redis::Pipeline::load_script
    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:33,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_async.rs:35,1
    - Dst: smol::spawn
      Src: /src/redis-rs/redis/tests/test_async.rs:39,1
    - Dst: detach
      Src: /src/redis-rs/redis/tests/test_async.rs:39,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: 44
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 44
    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:
    - smol::spawn
    - tokio::runtime::Handle::try_current
    - detach
    - 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:48,1
    - Dst: AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_async.rs:48,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:49,1
    - Dst: block_on_all
      Src: /src/redis-rs/redis/tests/test_async.rs:50,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_async.rs:52,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:53,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:53,1
    - Dst: Self::store
      Src: /src/redis-rs/redis/tests/test_async.rs:54,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:59,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:59,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_async.rs:60,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:65,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - RuntimeType
    constantsTouched: []
    func_position:
      end: 69
      start: 28
    functionDepth: 8
    functionLinenumber: 28
    functionLinenumberEnd: 69
    functionName: basic_async::test_block_on_all_panics_from_spawns
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - RedisServer::load
    - Arc::new
    - block_on_all
    - futures_time::time::Duration::from_millis
    - Ok
    - AtomicBool::new
    - Self::store
    - spawn
    - futures_time::task::sleep
    - RedisServer::clone
    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:73,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:73,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:73,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:73,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: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:82,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:82,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:82,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:87,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 88
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 88
    functionName: basic_async::args
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::query_async'
    - '&mut Cmd::exec_async'
    - Ok
    - exec_async
    - redis::cmd
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn args(mut con: impl ConnectionLike) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:94,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:94,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:94,1
    - Dst: set_no_response
      Src: /src/redis-rs/redis/tests/test_async.rs:94,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:94,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:102,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:102,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:102,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:102,1
    - Dst: set_no_response
      Src: /src/redis-rs/redis/tests/test_async.rs:102,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:102,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
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 113
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 113
    functionName: basic_async::no_response_skips_response_even_on_error
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::query_async'
    - '&mut Cmd::exec_async'
    - Ok
    - set_no_response
    - arg
    - redis::cmd
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn no_response_skips_response_even_on_error(mut con: impl ConnectionLike,)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:124,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:124,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:124,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:124,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - conn
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 139
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 139
    functionName: b::a::s::i::c::_::a::s::y::n::c::::::::w::o::r::k::s::_::w::i::t::h::_::p::a::u::s::e::d::_::t::i::m::e::_::w::h::e::n::_::n::o::_::t::i::m::e::o::u::t::s::_::a::r::e::_::s::e::t::test
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - exec_async
    - redis::cmd
    - unwrap
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: 'async fn test(mut conn: impl ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::time::pause
      Src: /src/redis-rs/redis/tests/test_async.rs:119,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:140,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:142,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:145,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:145,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:145,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:142,1
    - Dst: test
      Src: /src/redis-rs/redis/tests/test_async.rs:151,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:157,1
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:160,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:160,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:160,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:157,1
    - Dst: test
      Src: /src/redis-rs/redis/tests/test_async.rs:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 168
    functionName: basic_async::works_with_paused_time_when_no_timeouts_are_set
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - Self::set_connection_timeout
    - AsyncConnectionConfig::new
    - Self::set_response_timeout
    - tokio::time::pause
    - test
    - ConnectionManagerConfig::new
    - get_multiplexed_async_connection_with_config
    - TestContext::new
    - get_connection_manager_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:172,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:173,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:173,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_async.rs:179,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:180,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:180,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:180,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:180,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:180,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:180,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:189,1
    - Dst: RedisConnectionInfo::set_username
      Src: /src/redis-rs/redis/tests/test_async.rs:189,1
    - Dst: Self::set_password
      Src: /src/redis-rs/redis/tests/test_async.rs:189,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:192,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:192,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:193,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:193,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:193,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:193,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:199,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:199,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:199,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:199,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 171
    functionDepth: 10
    functionLinenumber: 171
    functionLinenumberEnd: 206
    functionName: basic_async::can_authenticate_with_username_and_password
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - set_redis_settings
    - get_multiplexed_async_connection
    - '&mut Cmd::query_async'
    - TestContext::new
    - RedisResult::unwrap
    - Ok
    - RedisConnectionInfo::set_username
    - redis_settings
    - TestContext::async_connection
    - arg
    - Self::set_password
    - redis::Cmd::new
    - connection_info
    - redis::Client::open
    - unwrap
    - Cmd::arg
    - Self::arg
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: async fn can_authenticate_with_username_and_password() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::hgetall
      Src: /src/redis-rs/redis/tests/test_async.rs:217,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:217,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - connection
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 224
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 224
    functionName: basic_async::nice_hash_api
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - bool::hgetall
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn nice_hash_api(mut connection: impl AsyncCommands) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:235,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:236,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:236,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:237,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:237,1
    - Dst: pop
      Src: /src/redis-rs/redis/tests/test_async.rs:239,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:239,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - connection
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 247
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 247
    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
    - pop
    - Ok
    - Pipeline::cmd
    - unwrap
    - redis::pipe
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn nice_hash_api_in_pipe(mut connection: impl AsyncCommands)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:251,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:252,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:253,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:254,1
    - Dst: RedisResult::and_then
      Src: /src/redis-rs/redis/tests/test_async.rs:256,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:259,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:261,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:261,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:261,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:261,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:268,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:270,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:256,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:276,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 250
    functionDepth: 9
    functionLinenumber: 250
    functionLinenumberEnd: 277
    functionName: basic_async::dont_panic_on_closed_multiplexed_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - map
    - redis::Cmd::arg
    - get_multiplexed_async_connection
    - drop
    - RedisResult::and_then
    - Ok
    - query_async
    - redis::cmd
    - clone
    - TestContext::new
    - cmd
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: async fn dont_panic_on_closed_multiplexed_connection() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:281,1
    - Dst: Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:282,1
    - Dst: '&mut Pipeline::cmd'
      Src: /src/redis-rs/redis/tests/test_async.rs:282,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:282,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:282,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:282,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:282,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:282,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:282,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:282,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:282,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:282,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:293,1
    - Dst: RedisResult::map_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 299
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 299
    functionName: basic_async::pipeline_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - Pipeline::query_async
    - ignore
    - RedisResult::map_ok
    - '&mut Pipeline::cmd'
    - Pipeline::atomic
    - arg
    - cmd
    - redis::pipe
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn pipeline_transaction(mut con: impl ConnectionLike) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:307,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:308,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:308,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:308,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:308,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:308,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:308,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:308,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:308,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:308,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:308,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:308,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:319,1
    - Dst: impl AsyncCommands::get
      Src: /src/redis-rs/redis/tests/test_async.rs:320,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:320,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 323
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 323
    functionName: basic_async::client_tracking_doesnt_block_execution
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - Pipeline::query_async
    - impl AsyncCommands::get
    - Ok
    - arg
    - Pipeline::cmd
    - unwrap
    - '&mut Cmd::arg'
    - cmd
    - redis::pipe
    - ignore
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn client_tracking_doesnt_block_execution(mut con: impl AsyncCommands,)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set::<_, _, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:327,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:327,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:330,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:330,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:330,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:330,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:330,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:338,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:338,1
    - Dst: '&mut Pipeline::ping'
      Src: /src/redis-rs/redis/tests/test_async.rs:338,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:338,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:338,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:338,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:338,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:338,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:338,1
    - Dst: into_server_errors
      Src: /src/redis-rs/redis/tests/test_async.rs:350,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:350,1
    - Dst: impl AsyncCommands::get
      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: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 55
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 361
      start: 326
    functionDepth: 9
    functionLinenumber: 326
    functionLinenumberEnd: 361
    functionName: basic_async::pipeline_transaction_with_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - "atomic()\n            .ping()\n            .set(\"x\", 142)\n            .ignore()\n\
      \            .get(\"x\")\n            .set(\"x\", 142)\n            .query_async::<()>"
    - set::<_, _, ()>
    - Option::unwrap
    - '&mut Pipeline::ping'
    - ignore
    - get
    - impl AsyncCommands::get
    - redis::Pipeline::atomic
    - Ok
    - exec_async
    - set
    - into_server_errors
    - redis::cmd
    - unwrap
    - unwrap_err
    - redis::pipe
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn pipeline_transaction_with_errors(mut con: impl AsyncCommands)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_async.rs:366,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:367,1
    - Dst: set::<_, _, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:368,1
    - Dst: json_set::<_, _, _, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:369,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:372,1
    - Dst: RedisResult::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:373,1
    - Dst: '&mut Pipeline::ping'
      Src: /src/redis-rs/redis/tests/test_async.rs:373,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:373,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:373,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_async.rs:373,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:373,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_async.rs:373,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_async.rs:373,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_async.rs:373,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:373,1
    - Dst: RedisResult::ignore_errors
      Src: /src/redis-rs/redis/tests/test_async.rs:393,1
    - Dst: RedisResult::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:393,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:408,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 365
    functionDepth: 9
    functionLinenumber: 365
    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:
    - set::<_, _, ()>
    - '&mut Pipeline::ping'
    - json_set::<_, _, _, ()>
    - get
    - RedisResult::query_async
    - Ok
    - set
    - TestContext::with_modules
    - TestContext::async_connection
    - json_get
    - RedisResult::ignore_errors
    - RedisResult::atomic
    - redis::pipe
    - ignore
    linkageType: ''
    returnType: RedisResult
    signature: async fn module_json_and_pipeline_transaction_with_ignore_errors()
      -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set::<_, _, ()>
      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: RedisResult::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: RedisResult::ignore_errors
      Src: /src/redis-rs/redis/tests/test_async.rs:426,1
    - Dst: RedisResult::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:426,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:439,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 440
      start: 412
    functionDepth: 9
    functionLinenumber: 412
    functionLinenumberEnd: 440
    functionName: basic_async::pipeline_with_ignore_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - set::<_, _, ()>
    - RedisResult::query_async
    - get
    - Ok
    - set
    - RedisResult::ignore_errors
    - arg
    - RedisResult::ping
    - cmd
    - redis::pipe
    - ignore
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn pipeline_with_ignore_errors(mut con: impl AsyncCommands)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:444,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_async.rs:445,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:445,1
    - Dst: hset
      Src: /src/redis-rs/redis/tests/test_async.rs:445,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:445,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:445,1
    - Dst: Pipeline::exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:451,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:452,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_async.rs:452,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 458
      start: 443
    functionDepth: 9
    functionLinenumber: 443
    functionLinenumberEnd: 458
    functionName: basic_async::pipeline_returns_server_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - to_string
    - get
    - Ok
    - hset
    - Pipeline::set
    - Pipeline::exec_async
    - unwrap_err
    - redis::pipe
    - ignore
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn pipeline_returns_server_errors(mut con: impl AsyncCommands)
      -> RedisResult<()>'
  - 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: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:478,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:478,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:478,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:482,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:482,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:482,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/tests/test_async.rs:482,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:487,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 2
    argNames:
    - con
    - i
    argTypes:
    - impl AsyncCommands + Clone
    - i32
    constantsTouched: []
    func_position:
      end: 491
      start: 460
    functionDepth: 9
    functionLinenumber: 460
    functionLinenumberEnd: 491
    functionName: basic_async::test_cmd
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - RedisResult::map
    - redis::Cmd::arg
    - as_bytes
    - Self::clone
    - '&mut Cmd::query_async'
    - '&mut Cmd::exec_async'
    - Ok
    - exec_async
    - redis::cmd
    - clone
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: impl Future
    signature: 'fn test_cmd(con: impl AsyncCommands + Clone,i: i32,) -> impl Future<Output
      = RedisResult<()>> + Send'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:495,1
    - Dst: Pipeline::zrange
      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: impl ConnectionLike::req_packed_commands
      Src: /src/redis-rs/redis/tests/test_async.rs:498,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 503
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 503
    functionName: basic_async::pipe_over_multiplexed_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Pipeline::zrange
    - impl ConnectionLike::req_packed_commands
    - Ok
    - pipe
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn pipe_over_multiplexed_connection(mut con: impl ConnectionLike)
      -> RedisResult<()>'
  - 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::try_join_all
      Src: /src/redis-rs/redis/tests/test_async.rs:508,1
    - Dst: map_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:508,1
    - Dst: map_err
      Src: /src/redis-rs/redis/tests/test_async.rs:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands + Clone
    constantsTouched: []
    func_position:
      end: 514
      start: 506
    functionDepth: 9
    functionLinenumber: 506
    functionLinenumberEnd: 514
    functionName: basic_async::running_multiple_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - map_err
    - test_cmd
    - impl AsyncCommands + Clone::clone
    - future::try_join_all
    - map_ok
    - map
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn running_multiple_commands(con: impl AsyncCommands + Clone)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:520,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:521,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:526,1
    - Dst: Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:527,1
    - Dst: '&mut Pipeline::cmd'
      Src: /src/redis-rs/redis/tests/test_async.rs:527,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:527,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:527,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:527,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:527,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:527,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:527,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:527,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:527,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:538,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/tests/test_async.rs:538,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/tests/test_async.rs:546,1
    - Dst: map_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:546,1
    - Dst: map_err
      Src: /src/redis-rs/redis/tests/test_async.rs:546,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike + Clone
    constantsTouched: []
    func_position:
      end: 552
      start: 517
    functionDepth: 9
    functionLinenumber: 517
    functionLinenumberEnd: 552
    functionName: basic_async::transaction_multiplexed_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - RedisResult::map
    - redis::Cmd::arg
    - Pipeline::query_async
    - map_err
    - Self::clone
    - ignore
    - map_ok
    - '&mut Pipeline::cmd'
    - future::try_join_all
    - Pipeline::atomic
    - arg
    - '&mut Cmd::arg'
    - cmd
    - redis::pipe
    - map
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn transaction_multiplexed_connection(con: impl ConnectionLike
      + Clone,) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::collections::HashSet::new
      Src: /src/redis-rs/redis/tests/test_async.rs:556,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:559,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:559,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:559,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:559,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_async.rs:564,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:567,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:567,1
    - Dst: '&mut Cmd::cursor_arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:567,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:567,1
    - Dst: Self::iter_async
      Src: /src/redis-rs/redis/tests/test_async.rs:567,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:567,1
    - Dst: next_item
      Src: /src/redis-rs/redis/tests/test_async.rs:575,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:583,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike + Send
    constantsTouched: []
    func_position:
      end: 584
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 584
    functionName: basic_async::async_scanning
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - Self::iter_async
    - std::collections::HashSet::new
    - RedisServer::insert
    - next_item
    - '&mut Cmd::clone'
    - Ok
    - exec_async
    - redis::cmd
    - unwrap
    - '&mut Cmd::cursor_arg'
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_scanning(mut con: impl ConnectionLike + Send) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::collections::HashSet::new
      Src: /src/redis-rs/redis/tests/test_async.rs:588,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:592,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:592,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:593,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:592,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:592,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_async.rs:597,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:597,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:600,1
    - Dst: redis::Cmd::cursor_arg
      Src: /src/redis-rs/redis/tests/test_async.rs:600,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:600,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:600,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:600,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:600,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:600,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:600,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:600,1
    - Dst: next_item
      Src: /src/redis-rs/redis/tests/test_async.rs:611,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:619,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike + Send
    constantsTouched: []
    func_position:
      end: 620
      start: 587
    functionDepth: 2
    functionLinenumber: 587
    functionLinenumberEnd: 620
    functionName: basic_async::async_scanning_iterative
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - "cursor_arg(0)\n            .arg(\"MATCH\")\n            .arg(\"key*\")\n  \
      \          .arg(\"COUNT\")\n            .arg(1)\n            .clone()\n    \
      \        .iter_async::<String>"
    - std::collections::HashSet::new
    - RedisServer::insert
    - redis::Cmd::cursor_arg
    - next_item
    - Ok
    - exec_async
    - arg
    - redis::cmd
    - clone
    - unwrap
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_scanning_iterative(mut con: impl ConnectionLike + Send)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::collections::HashSet::new
      Src: /src/redis-rs/redis/tests/test_async.rs:624,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:628,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:628,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:629,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:628,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:628,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_async.rs:633,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:633,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:636,1
    - Dst: redis::Cmd::cursor_arg
      Src: /src/redis-rs/redis/tests/test_async.rs:636,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:636,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:636,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:636,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:636,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:636,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:636,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:636,1
    - Dst: next_item
      Src: /src/redis-rs/redis/tests/test_async.rs:647,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:655,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike + Sync + Send
    constantsTouched: []
    func_position:
      end: 656
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 656
    functionName: basic_async::async_scanning_stream
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - "cursor_arg(0)\n            .arg(\"MATCH\")\n            .arg(\"key*\")\n  \
      \          .arg(\"COUNT\")\n            .arg(1)\n            .clone()\n    \
      \        .iter_async::<String>"
    - std::collections::HashSet::new
    - RedisServer::insert
    - redis::Cmd::cursor_arg
    - next_item
    - Ok
    - exec_async
    - arg
    - redis::cmd
    - clone
    - unwrap
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_scanning_stream(mut con: impl ConnectionLike + Sync
      + Send) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:660,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:662,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:662,1
    - Dst: bool::set_response_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:663,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:663,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_async.rs:664,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:665,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:665,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:665,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_async.rs:666,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 670
      start: 659
    functionDepth: 10
    functionLinenumber: 659
    functionLinenumberEnd: 670
    functionName: basic_async::response_timeout_multiplexed_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - bool::set_response_timeout
    - Duration::from_millis
    - Ok
    - bool::req_packed_command
    - TestContext::async_connection
    - arg
    - redis::Cmd::new
    - Cmd::arg
    - unwrap
    - TestContext::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: async fn response_timeout_multiplexed_connection() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:677,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:678,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:679,1
    - Dst: Script::key
      Src: /src/redis-rs/redis/tests/test_async.rs:680,1
    - Dst: ScriptInvocation::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:680,1
    - Dst: "key(\"key1\")\n            .arg(\"foo\")\n            .invoke_async::<()>"
      Src: /src/redis-rs/redis/tests/test_async.rs:680,1
    - Dst: Script::key
      Src: /src/redis-rs/redis/tests/test_async.rs:685,1
    - Dst: ScriptInvocation::invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:685,1
    - Dst: Script::invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:687,1
    - Dst: Script::key
      Src: /src/redis-rs/redis/tests/test_async.rs:689,1
    - Dst: ScriptInvocation::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:689,1
    - Dst: "key(\"key1\")\n            .arg(\"bar\")\n            .invoke_async::<()>"
      Src: /src/redis-rs/redis/tests/test_async.rs:689,1
    - Dst: Script::key
      Src: /src/redis-rs/redis/tests/test_async.rs:694,1
    - Dst: ScriptInvocation::invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:694,1
    - Dst: Script::invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:696,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:699,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 700
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 700
    functionName: basic_async::script
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - ScriptInvocation::arg
    - "key(\"key1\")\n            .arg(\"bar\")\n            .invoke_async::<()>"
    - redis::Script::new
    - Ok
    - "key(\"key1\")\n            .arg(\"foo\")\n            .invoke_async::<()>"
    - Script::invoke_async
    - ScriptInvocation::invoke_async
    - Script::key
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn script(mut con: impl ConnectionLike) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:705,1
    - Dst: prepare_invoke
      Src: /src/redis-rs/redis/tests/test_async.rs:707,1
    - Dst: ScriptInvocation::load_async
      Src: /src/redis-rs/redis/tests/test_async.rs:707,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:707,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 710
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 710
    functionName: basic_async::script_load
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Script::new
    - Ok
    - ScriptInvocation::load_async
    - prepare_invoke
    - unwrap
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn script_load(mut con: impl ConnectionLike) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:715,1
    - Dst: Script::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:715,1
    - Dst: ScriptInvocation::invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:715,1
    - Dst: RedisResult::map_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 724
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 724
    functionName: basic_async::script_returning_complex_type
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Script::arg
    - redis::Script::new
    - RedisResult::map_ok
    - ScriptInvocation::invoke_async
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn script_returning_complex_type(mut con: impl ConnectionLike)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:731,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:733,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:733,1
    - Dst: kill_client_async
      Src: /src/redis-rs/redis/tests/test_async.rs:734,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:734,1
    - Dst: get::<_, Option<String>>
      Src: /src/redis-rs/redis/tests/test_async.rs:740,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:742,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:742,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:742,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:747,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 748
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 748
    functionName: basic_async::io_error_on_kill_issue_320
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - sleep
    - Duration::from_millis
    - Ok
    - TestContext::async_connection
    - kill_client_async
    - unwrap
    - TestContext::new
    - into
    - get::<_, Option<String>>
    linkageType: ''
    returnType: RedisResult
    signature: async fn io_error_on_kill_issue_320() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:752,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:754,1
    - Dst: Self::set_password
      Src: /src/redis-rs/redis/tests/test_async.rs:754,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:755,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:755,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:755,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:755,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:755,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:763,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:763,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:765,1
    - Dst: err
      Src: /src/redis-rs/redis/tests/test_async.rs:765,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:765,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 776
      start: 751
    functionDepth: 9
    functionLinenumber: 751
    functionLinenumberEnd: 776
    functionName: basic_async::invalid_password_issue_343
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - set_redis_settings
    - get_multiplexed_async_connection
    - RedisConnectionInfo::default
    - err
    - RedisResult::unwrap
    - Ok
    - into_connection_info
    - Self::set_password
    - redis::Client::open
    - clone
    - client_addr
    - TestContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn invalid_password_issue_343() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl AsyncCommands::append
      Src: /src/redis-rs/redis/tests/test_async.rs:781,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:781,1
    - Dst: impl AsyncCommands::append
      Src: /src/redis-rs/redis/tests/test_async.rs:782,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:782,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_async.rs:785,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/tests/test_async.rs:785,1
    - Dst: Self::with_pattern
      Src: /src/redis-rs/redis/tests/test_async.rs:785,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_async.rs:786,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:786,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_async.rs:787,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:787,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:789,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:787,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_async.rs:795,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_async.rs:796,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:796,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_async.rs:797,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:797,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:799,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:797,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:803,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 804
      start: 779
    functionDepth: 9
    functionLinenumber: 779
    functionLinenumberEnd: 804
    functionName: basic_async::scan_with_options_works
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - impl AsyncCommands::append
    - futures_time::time::Duration::from_millis
    - Self::with_pattern
    - Self::collect
    - timeout
    - Ok
    - ScanOptions::default
    - unwrap
    - scan_options::<String>
    - Self::with_count
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn scan_with_options_works(mut con: impl AsyncCommands) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl AsyncCommands::append
      Src: /src/redis-rs/redis/tests/test_async.rs:811,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:811,1
    - Dst: scan_match::<&str, String>
      Src: /src/redis-rs/redis/tests/test_async.rs:813,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:813,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_async.rs:815,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:814,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:818,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:814,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:821,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 822
      start: 809
    functionDepth: 13
    functionLinenumber: 809
    functionLinenumberEnd: 822
    functionName: basic_async::issue_stream_blocks
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - impl AsyncCommands::append
    - futures_time::time::Duration::from_millis
    - Self::collect
    - timeout
    - Ok
    - scan_match::<&str, String>
    - unwrap
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn issue_stream_blocks(mut con: impl AsyncCommands) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:828,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_async.rs:828,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_async.rs:829,1
    - Dst: impl AsyncCommands::set
      Src: /src/redis-rs/redis/tests/test_async.rs:831,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:831,1
    - Dst: impl AsyncCommands::scan
      Src: /src/redis-rs/redis/tests/test_async.rs:834,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:834,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:835,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_async.rs:835,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_async.rs:836,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:839,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 840
      start: 827
    functionDepth: 9
    functionLinenumber: 827
    functionLinenumberEnd: 840
    functionName: basic_async::issue_async_commands_scan_broken
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - impl AsyncCommands::set
    - collect
    - Ok
    - sort
    - unwrap
    - impl AsyncCommands::scan
    - map
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn issue_async_commands_scan_broken(mut con: impl AsyncCommands)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:849,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:851,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:852,1
    - Dst: on_message
      Src: /src/redis-rs/redis/tests/test_async.rs:853,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:854,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:855,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:859,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:863,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:863,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:863,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:863,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:868,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 869
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 869
    functionName: basic_async::pub_sub_subscription
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - subscribe
    - Ok
    - get_payload
    - TestContext::async_pubsub
    - TestContext::async_connection
    - next
    - publish
    - unwrap
    - on_message
    - TestContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn pub_sub_subscription() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:875,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:877,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:878,1
    - Dst: on_message
      Src: /src/redis-rs/redis/tests/test_async.rs:879,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:880,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:881,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:883,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:883,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:883,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:886,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:887,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:887,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:887,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_async.rs:890,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 891
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 891
    functionName: basic_async::pub_sub_subscription_to_multiple_channels
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - subscribe
    - get_payload
    - TestContext::async_pubsub
    - TestContext::async_connection
    - next
    - publish
    - unwrap
    - on_message
    - TestContext::new
    - Ok::<_, RedisError>
    linkageType: ''
    returnType: RedisResult
    signature: async fn pub_sub_subscription_to_multiple_channels() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:920,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_async.rs:920,1
    - Dst: impl AsyncCommands::set
      Src: /src/redis-rs/redis/tests/test_async.rs:925,1
    - Dst: '&str::as_bytes'
      Src: /src/redis-rs/redis/tests/test_async.rs:925,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:925,1
    - Dst: impl AsyncCommands::scan
      Src: /src/redis-rs/redis/tests/test_async.rs:929,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:929,1
    - Dst: next_item
      Src: /src/redis-rs/redis/tests/test_async.rs:934,1
    - Dst: is_some
      Src: /src/redis-rs/redis/tests/test_async.rs:940,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_async.rs:943,1
    - Dst: PathBuf::kind
      Src: /src/redis-rs/redis/tests/test_async.rs:943,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:954,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 59
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 955
      start: 896
    functionDepth: 9
    functionLinenumber: 896
    functionLinenumberEnd: 955
    functionName: basic_async::issue_async_commands_scan_finishing_prematurely
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - is_some
    - impl AsyncCommands::set
    - PathBuf::kind
    - next_item
    - collect
    - Ok
    - Some
    - unwrap
    - '&str::as_bytes'
    - impl AsyncCommands::scan
    - map
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn issue_async_commands_scan_finishing_prematurely(mut con:
      impl AsyncCommands,) -> RedisResult<()>'
  - 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: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:964,1
    - Dst: unsubscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:965,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:967,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:968,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:968,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:968,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:968,1
    - Dst: get
      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: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:976,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 977
      start: 958
    functionDepth: 3
    functionLinenumber: 958
    functionLinenumberEnd: 977
    functionName: basic_async::pub_sub_unsubscription
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - get
    - subscribe
    - Ok
    - TestContext::async_pubsub
    - TestContext::async_connection
    - query_async
    - redis::cmd
    - unwrap
    - TestContext::new
    - unsubscribe
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: async fn pub_sub_unsubscription() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:982,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:984,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:984,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:985,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:987,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:990,1
    - Dst: RedisResult::next
      Src: /src/redis-rs/redis/tests/test_async.rs:994,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:994,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:994,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:994,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:999,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 1000
    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:
    - RedisResult::next
    - split
    - subscribe
    - Ok
    - get_payload
    - TestContext::async_pubsub
    - TestContext::async_connection
    - publish
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn can_receive_messages_while_sending_requests_from_split_pub_sub()
      -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1004,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1006,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:1006,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1007,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1009,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1014,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1017,1
    - Dst: ping
      Src: /src/redis-rs/redis/tests/test_async.rs:1018,1
    - Dst: ping
      Src: /src/redis-rs/redis/tests/test_async.rs:1021,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1025,1
    - Dst: ping_message
      Src: /src/redis-rs/redis/tests/test_async.rs:1026,1
    - Dst: ping_message
      Src: /src/redis-rs/redis/tests/test_async.rs:1029,1
    - Dst: RedisResult::next
      Src: /src/redis-rs/redis/tests/test_async.rs:1034,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1034,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:1034,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1040,1
    - Dst: ping_message::<()>
      Src: /src/redis-rs/redis/tests/test_async.rs:1041,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1041,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1044,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1003
    functionDepth: 5
    functionLinenumber: 1003
    functionLinenumberEnd: 1045
    functionName: basic_async::can_send_ping_on_split_pubsub
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - ping_message::<()>
    - ping_message
    - ping
    - split
    - RedisResult::next
    - subscribe
    - drop
    - Ok
    - get_payload
    - TestContext::async_pubsub
    - TestContext::async_connection
    - publish
    - unwrap
    - supports_resp3
    - TestContext::new
    - unwrap_err
    linkageType: ''
    returnType: RedisResult
    signature: async fn can_send_ping_on_split_pubsub() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1050,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1052,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:1052,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1053,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1055,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1056,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1059,1
    - Dst: RedisResult::next
      Src: /src/redis-rs/redis/tests/test_async.rs:1063,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1063,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:1063,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1063,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1068,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1048
    functionDepth: 5
    functionLinenumber: 1048
    functionLinenumberEnd: 1069
    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:
    - RedisResult::next
    - split
    - subscribe
    - drop
    - Ok
    - get_payload
    - TestContext::async_pubsub
    - TestContext::async_connection
    - publish
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn can_receive_messages_from_split_pub_sub_after_sink_was_dropped()
      -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1074,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1076,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1077,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1079,1
    - Dst: RedisResult::into_on_message
      Src: /src/redis-rs/redis/tests/test_async.rs:1080,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1082,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_async.rs:1082,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1082,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1085,1
    - Dst: RedisResult::next
      Src: /src/redis-rs/redis/tests/test_async.rs:1089,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1089,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:1089,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1089,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1094,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1072
    functionDepth: 1
    functionLinenumber: 1072
    functionLinenumberEnd: 1095
    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:
    - RedisResult::subscribe
    - sleep
    - RedisResult::next
    - RedisResult::into_on_message
    - Ok
    - get_payload
    - TestContext::async_pubsub
    - TestContext::async_connection
    - Duration::from_secs
    - publish
    - unwrap
    - TestContext::new
    - into
    linkageType: ''
    returnType: RedisResult
    signature: async fn can_receive_messages_from_split_pub_sub_after_into_on_message()
      -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1099,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1101,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:1101,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1102,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1098
    functionDepth: 5
    functionLinenumber: 1098
    functionLinenumberEnd: 1107
    functionName: basic_async::cannot_subscribe_on_split_pub_sub_after_stream_was_dropped
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - split
    - drop
    - Ok
    - TestContext::async_pubsub
    - TestContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn cannot_subscribe_on_split_pub_sub_after_stream_was_dropped()
      -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1113,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1115,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1116,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1117,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1119,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1123,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1123,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1123,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1123,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1128,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1128,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1133,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1133,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1133,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_async.rs:1137,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1110
    functionDepth: 5
    functionLinenumber: 1110
    functionLinenumberEnd: 1138
    functionName: basic_async::automatic_unsubscription
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - sleep
    - get
    - Duration::from_millis
    - subscribe
    - drop
    - TestContext::async_pubsub
    - TestContext::async_connection
    - query_async
    - redis::cmd
    - unwrap
    - Ok::<_, RedisError>
    - TestContext::new
    - into
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: async fn automatic_unsubscription() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1144,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1146,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:1146,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1147,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1148,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1149,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1149,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1149,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1151,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1151,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1151,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1151,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1156,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1156,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1159,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1163,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1163,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1163,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1163,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1168,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1168,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1173,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1173,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1173,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1178,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1178,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_async.rs:1181,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1141
    functionDepth: 5
    functionLinenumber: 1141
    functionLinenumberEnd: 1182
    functionName: basic_async::automatic_unsubscription_on_split
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - sleep
    - split
    - Duration::from_millis
    - subscribe
    - get
    - drop
    - unwrap_err
    - TestContext::async_pubsub
    - TestContext::async_connection
    - query_async
    - redis::cmd
    - unwrap
    - Ok::<_, RedisError>
    - TestContext::new
    - into
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: async fn automatic_unsubscription_on_split() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lpush::<&str, &str, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:1188,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:1190,1
    - Dst: redis::Pipeline::get
      Src: /src/redis-rs/redis/tests/test_async.rs:1190,1
    - Dst: RedisResult::llen
      Src: /src/redis-rs/redis/tests/test_async.rs:1190,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1190,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1190,1
    - Dst: RedisResult::lrange
      Src: /src/redis-rs/redis/tests/test_async.rs:1196,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_async.rs:1200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - conn
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 1201
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1201
    functionName: basic_async::pipe_errors_do_not_affect_subsequent_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - lpush::<&str, &str, ()>
    - Ok::<_, RedisError>
    - RedisResult::llen
    - exec_async
    - redis::Pipeline::get
    - RedisResult::lrange
    - redis::pipe
    - unwrap_err
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn pipe_errors_do_not_affect_subsequent_commands(mut conn: impl
      AsyncCommands,) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1205,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1206,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1207,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1210,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1211,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1211,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1212,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1216,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1217,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1219,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1219,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1222,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1224,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1224,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1226,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1226,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1228,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1228,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1231,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1232
    functionName: basic_async::multiplexed_pub_sub_subscribe_on_multiple_channels
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::set_push_sender
    - RedisResult::subscribe
    - unwrap
    - tokio::sync::mpsc::unbounded_channel
    - Ok
    - TestContext::async_connection
    - recv
    - publish
    - get_multiplexed_async_connection_with_config
    - supports_resp3
    - TestContext::new
    - redis::AsyncConnectionConfig::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn multiplexed_pub_sub_subscribe_on_multiple_channels() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lpush::<&str, &str, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:1238,1
    - Dst: RedisResult::req_packed_commands
      Src: /src/redis-rs/redis/tests/test_async.rs:1240,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:1242,1
    - Dst: redis::Pipeline::get
      Src: /src/redis-rs/redis/tests/test_async.rs:1242,1
    - Dst: RedisResult::llen
      Src: /src/redis-rs/redis/tests/test_async.rs:1242,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1240,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_async.rs:1254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - conn
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 1255
      start: 1235
    functionDepth: 3
    functionLinenumber: 1235
    functionLinenumberEnd: 1255
    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:
    - lpush::<&str, &str, ()>
    - RedisResult::req_packed_commands
    - RedisResult::llen
    - unwrap
    - redis::Pipeline::get
    - redis::pipe
    - Ok::<_, RedisError>
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn non_transaction_errors_do_not_affect_other_results_in_pipeline(mut
      conn: impl AsyncCommands,) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1261,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:1262,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1262,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1263,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1263,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1264,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1264,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1266,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1267,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1267,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1268,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_async.rs:1272,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1273,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1273,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1274,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1274,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1277,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1279,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1280,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1284,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1284,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1297,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1298,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1300,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1300,1
    - Dst: RedisResult::unsubscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1311,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1311,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1312,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1312,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1314,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1315,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1318,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1318,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1318,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_async.rs:1321,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1258
    functionDepth: 9
    functionLinenumber: 1258
    functionLinenumberEnd: 1322
    functionName: basic_async::pub_sub_multiple
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::set_protocol
    - recv
    - connection_info
    - RedisResult::unsubscribe
    - publish
    - get_multiplexed_async_connection_with_config
    - into
    - redis::AsyncConnectionConfig::new
    - set_redis_settings
    - Self::set_push_sender
    - RedisResult::subscribe
    - Duration::from_millis
    - RedisConnectionInfo::default
    - '&str::clone'
    - unwrap
    - Ok::<_, RedisError>
    - sleep
    - tokio::sync::mpsc::unbounded_channel
    - RedisResult::unwrap
    - redis::Client::open
    - TestContext::async_connection
    - TestContext::new
    - '&str::to_string'
    linkageType: ''
    returnType: RedisResult
    signature: async fn pub_sub_multiple() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1326,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1326,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1327,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1329,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1330,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1330,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1332,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1340
    functionName: basic_async::pub_sub_requires_resp3
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - RedisResult::subscribe
    - ProtocolVersion::supports_resp3
    - Ok
    - TestContext::async_connection
    - unwrap
    - use_protocol
    - TestContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn pub_sub_requires_resp3() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1346,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:1347,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1347,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1348,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1348,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1349,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1349,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1351,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1352,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1352,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1353,1
    - Dst: RedisResult::set
      Src: /src/redis-rs/redis/tests/test_async.rs:1357,1
    - Dst: kill_client_async
      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: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_async.rs:1363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1343
    functionDepth: 9
    functionLinenumber: 1343
    functionLinenumberEnd: 1364
    functionName: basic_async::push_sender_send_on_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - set_redis_settings
    - Self::set_push_sender
    - Self::set_protocol
    - unwrap
    - tokio::sync::mpsc::unbounded_channel
    - RedisConnectionInfo::default
    - RedisResult::unwrap
    - kill_client_async
    - connection_info
    - redis::Client::open
    - RedisResult::set
    - get_multiplexed_async_connection_with_config
    - Ok::<_, RedisError>
    - TestContext::new
    - redis::AsyncConnectionConfig::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn push_sender_send_on_disconnect() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1370,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1371,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1372,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1374,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1376,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1377,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1377,1
    - Dst: Self::set_automatic_resubscription
      Src: /src/redis-rs/redis/tests/test_async.rs:1377,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1377,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1382,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1386,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1387,1
    - Dst: unsubscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1388,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:1396,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1396,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1402,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1402,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1408,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1408,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1414,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1414,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1421,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1421,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1422,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1425,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1425,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1425,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1426,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1426,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1428,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1430,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1430,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1433,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1433,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1442,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1442,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1449,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1450,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1452,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1452,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1463,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1464,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1465,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1465,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_async.rs:1479,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 149
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1368
    functionDepth: 5
    functionLinenumber: 1368
    functionLinenumberEnd: 1480
    functionName: basic_async::manager_should_resubscribe_to_pubsub_channels_after_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new_with_addr
    - Ok
    - recv
    - clone
    - publish
    - unsubscribe
    - into
    - Self::set_push_sender
    - Duration::from_millis
    - unwrap
    - Ok::<_, RedisError>
    - sleep
    - tokio::sync::mpsc::unbounded_channel
    - Self::set_automatic_resubscription
    - subscribe
    - Self::set_max_delay
    - psubscribe
    - redis::aio::ConnectionManagerConfig::new
    - Self::async_connection
    - get_connection_manager_with_config
    - drop
    - client_addr
    - supports_resp3
    - TestContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn manager_should_resubscribe_to_pubsub_channels_after_disconnect()
      -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:1489,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:1489,1
    - Dst: '&mut Pipeline::cmd'
      Src: /src/redis-rs/redis/tests/test_async.rs:1489,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1489,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1489,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1489,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1489,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1489,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:1489,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1489,1
    - Dst: Ok::<_, redis::RedisError>
      Src: /src/redis-rs/redis/tests/test_async.rs:1511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - conn
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 1512
      start: 1484
    functionDepth: 2
    functionLinenumber: 1484
    functionLinenumberEnd: 1512
    functionName: basic_async::async_basic_pipe_with_parsing_error
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - expect_err
    - redis::Cmd::arg
    - "atomic()\n            .cmd(\"EVALSHA\")\n            .arg(\"foobar\")\n   \
      \         .arg(0)\n            .cmd(\"EVALSHA\")\n            .arg(\"foobar\"\
      )\n            .arg(0)\n            .query_async::<((), ())>"
    - '&mut Pipeline::cmd'
    - redis::Pipeline::atomic
    - Cmd::arg
    - Ok::<_, redis::RedisError>
    - cmd
    - redis::pipe
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_basic_pipe_with_parsing_error(mut conn: impl ConnectionLike)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1517,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1518,1
    - Dst: Self::set_exponent_base
      Src: /src/redis-rs/redis/tests/test_async.rs:1518,1
    - Dst: ConnectionManagerConfig::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1518,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1522,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis/tests/test_async.rs:1522,1
    - Dst: tempdir
      Src: /src/redis-rs/redis/tests/test_async.rs:1522,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_async.rs:1522,1
    - Dst: redis_test::utils::build_keys_and_certs_for_tls
      Src: /src/redis-rs/redis/tests/test_async.rs:1526,1
    - Dst: TestContext::with_tls
      Src: /src/redis-rs/redis/tests/test_async.rs:1528,1
    - Dst: TlsFilePaths::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1528,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1531,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1532,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1533,1
    - Dst: redis::aio::ConnectionManager::new_with_config
      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: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1536,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1539,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1539,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1540,1
    - Dst: RedisResult::set
      Src: /src/redis-rs/redis/tests/test_async.rs:1541,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1544,1
    - Dst: redis_test::server::RedisServer::new_with_addr_and_modules
      Src: /src/redis-rs/redis/tests/test_async.rs:1548,1
    - Dst: set::<_, _, Value>
      Src: /src/redis-rs/redis/tests/test_async.rs:1551,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1552,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1552,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1552,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1556,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1559,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1516
    functionDepth: 9
    functionLinenumber: 1516
    functionLinenumberEnd: 1562
    functionName: basic_async::connection_manager_reconnect_after_delay
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::set_exponent_base
    - ProtocolVersion::supports_resp3
    - Ok
    - TlsFilePaths::clone
    - redis_test::utils::build_keys_and_certs_for_tls
    - RedisResult::set
    - clone
    - tempfile::Builder::new
    - into
    - Self::set_push_sender
    - Duration::from_millis
    - redis::aio::ConnectionManager::new_with_config
    - TestContext::with_tls
    - tempdir
    - unwrap
    - sleep
    - redis_test::server::RedisServer::new_with_addr_and_modules
    - tokio::sync::mpsc::unbounded_channel
    - expect
    - set::<_, _, Value>
    - redis::aio::ConnectionManagerConfig::new
    - drop
    - ConnectionManagerConfig::set_max_delay
    - RedisResult::prefix
    - client_addr
    - supports_resp3
    linkageType: ''
    returnType: RedisResult
    signature: async fn connection_manager_reconnect_after_delay() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1567,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1568,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1569,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1572,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1573,1
    - Dst: Self::set_exponent_base
      Src: /src/redis-rs/redis/tests/test_async.rs:1573,1
    - Dst: ConnectionManagerConfig::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1573,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1577,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1582,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1582,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1583,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1584,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1586,1
    - Dst: Duration::from_secs_f32
      Src: /src/redis-rs/redis/tests/test_async.rs:1586,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1586,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_async.rs:1590,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1566
    functionDepth: 5
    functionLinenumber: 1566
    functionLinenumberEnd: 1591
    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_with_addr
    - Duration::from_secs_f32
    - sleep
    - Self::set_exponent_base
    - Duration::from_millis
    - drop
    - Ok
    - into
    - ConnectionManagerConfig::set_max_delay
    - clone
    - client_addr
    - Ok::<_, RedisError>
    - supports_resp3
    - TestContext::new
    - redis::aio::ConnectionManagerConfig::new
    - get_connection_manager_with_config
    linkageType: ''
    returnType: RedisResult
    signature: async fn manager_should_reconnect_without_actions_if_resp3_is_set()
      -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1596,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:1597,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1597,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1598,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1598,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1599,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1599,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1604,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1605,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1607,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1607,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1607,1
    - Dst: RedisResult::lines
      Src: /src/redis-rs/redis/tests/test_async.rs:1609,1
    - Dst: lines().collect::<Vec<_>>
      Src: /src/redis-rs/redis/tests/test_async.rs:1609,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_async.rs:1609,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1612,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1613,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1615,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1615,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1615,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_async.rs:1622,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1595
    functionDepth: 9
    functionLinenumber: 1595
    functionLinenumberEnd: 1624
    functionName: basic_async::manager_should_completely_disconnect_when_drop
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - RedisResult::lines
    - set_redis_settings
    - len
    - Self::set_protocol
    - '&mut Cmd::query_async'
    - cmd
    - RedisConnectionInfo::default
    - lines().collect::<Vec<_>>
    - RedisResult::unwrap
    - connection_info
    - redis::Client::open
    - Cmd::arg
    - Ok::<_, RedisError>
    - TestContext::new
    - redis::aio::ConnectionManagerConfig::new
    - get_connection_manager_with_config
    linkageType: ''
    returnType: RedisResult
    signature: async fn manager_should_completely_disconnect_when_drop() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1630,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1631,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1632,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1635,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1637,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1638,1
    - Dst: Self::set_exponent_base
      Src: /src/redis-rs/redis/tests/test_async.rs:1638,1
    - Dst: ConnectionManagerConfig::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1638,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1638,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1643,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1648,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1648,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1650,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1651,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1651,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1653,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1653,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1659,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1660,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1660,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1662,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1664,1
    - Dst: Duration::from_secs_f32
      Src: /src/redis-rs/redis/tests/test_async.rs:1664,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1664,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_async.rs:1668,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1628
    functionDepth: 5
    functionLinenumber: 1628
    functionLinenumberEnd: 1669
    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_with_addr
    - Self::set_exponent_base
    - ConnectionManagerConfig::set_push_sender
    - Ok
    - recv
    - clone
    - into
    - Duration::from_millis
    - unwrap
    - Ok::<_, RedisError>
    - Duration::from_secs_f32
    - sleep
    - tokio::sync::mpsc::unbounded_channel
    - Self::set_max_delay
    - redis::aio::ConnectionManagerConfig::new
    - get_connection_manager_with_config
    - drop
    - ConnectionAddr::clone
    - client_addr
    - supports_resp3
    - TestContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn manager_should_reconnect_without_actions_if_push_sender_is_set_even_after_sender_returns_error()->
      RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1681,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1681,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1681,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1683,1
    - Dst: RedisResult::as_bytes
      Src: /src/redis-rs/redis/tests/test_async.rs:1683,1
    - Dst: windows
      Src: /src/redis-rs/redis/tests/test_async.rs:1683,1
    - Dst: filter
      Src: /src/redis-rs/redis/tests/test_async.rs:1683,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_async.rs:1683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut impl redis::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 1688
      start: 1680
    functionDepth: 1
    functionLinenumber: 1680
    functionLinenumberEnd: 1688
    functionName: b::a::s::i::c::_::a::s::y::n::c::::::::m::u::l::t::i::p::l::e::x::e::d::_::c::o::n::n::e::c::t::i::o::n::_::k::i::l::l::s::_::c::o::n::n::e::c::t::i::o::n::_::o::n::_::d::r::o::p::_::e::v::e::n::_::w::h::e::n::_::b::l::o::c::k::i::n::g::count_ids
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - windows
    - '&mut Cmd::query_async'
    - filter
    - RedisResult::as_bytes
    - Ok
    - Cmd::arg
    - count
    - cmd
    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:1674,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1676,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1676,1
    - Dst: TestContext::async_connection
      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: set_response_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:1678,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1678,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1692,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1692,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1692,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1692,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1698,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1701,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1703,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1703,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1703,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1707,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1672
    functionDepth: 5
    functionLinenumber: 1672
    functionLinenumberEnd: 1708
    functionName: basic_async::multiplexed_connection_kills_connection_on_drop_even_when_blocking
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - set_response_timeout
    - sleep
    - Duration::from_millis
    - drop
    - unwrap_err
    - exec_async
    - into
    - Ok
    - TestContext::async_connection
    - Cmd::arg
    - unwrap
    - TestContext::new
    - cmd
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: async fn multiplexed_connection_kills_connection_on_drop_even_when_blocking()
      -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1712,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1714,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1714,1
    - Dst: get_async_monitor
      Src: /src/redis-rs/redis/tests/test_async.rs:1715,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1715,1
    - Dst: into_on_message
      Src: /src/redis-rs/redis/tests/test_async.rs:1716,1
    - Dst: RedisResult::set
      Src: /src/redis-rs/redis/tests/test_async.rs:1718,1
    - Dst: RedisResult::next
      Src: /src/redis-rs/redis/tests/test_async.rs:1720,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1720,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1723,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1727,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1711
    functionDepth: 9
    functionLinenumber: 1711
    functionLinenumberEnd: 1728
    functionName: basic_async::monitor
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - RedisResult::next
    - drop
    - Ok
    - into_on_message
    - TestContext::async_connection
    - RedisResult::set
    - get_async_monitor
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn monitor() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new_with_mtls
      Src: /src/redis-rs/redis/tests/test_async.rs:1738,1
    - Dst: build_single_client
      Src: /src/redis-rs/redis/tests/test_async.rs:1741,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1741,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1741,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1743,1
    - Dst: block_on_all
      Src: /src/redis-rs/redis/tests/test_async.rs:1744,1
    - Dst: RedisResult::and_then
      Src: /src/redis-rs/redis/tests/test_async.rs:1745,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1746,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1746,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1746,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1746,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1751,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1751,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1751,1
    - Dst: F::Output::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1744,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - RuntimeType
    constantsTouched: []
    func_position:
      end: 1758
      start: 1737
    functionDepth: 11
    functionLinenumber: 1737
    functionLinenumberEnd: 1758
    functionName: basic_async::test_should_connect_mtls
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - build_single_client
    - get_multiplexed_async_connection
    - TestContext::new_with_mtls
    - redis::Cmd::arg
    - '&mut Cmd::query_async'
    - block_on_all
    - RedisResult::unwrap
    - RedisResult::and_then
    - exec_async
    - connection_info
    - redis::cmd
    - F::Output::unwrap
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: 'fn test_should_connect_mtls(#[case] runtime: RuntimeType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new_with_mtls
      Src: /src/redis-rs/redis/tests/test_async.rs:1764,1
    - Dst: build_single_client
      Src: /src/redis-rs/redis/tests/test_async.rs:1767,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1767,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1767,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1769,1
    - Dst: block_on_all
      Src: /src/redis-rs/redis/tests/test_async.rs:1770,1
    - Dst: RedisResult::and_then
      Src: /src/redis-rs/redis/tests/test_async.rs:1771,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1772,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1772,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1772,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1772,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1777,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1777,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1777,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1785,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1785,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1787,1
    - Dst: is_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1794,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 54
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - RuntimeType
    constantsTouched: []
    func_position:
      end: 1801
      start: 1763
    functionDepth: 11
    functionLinenumber: 1763
    functionLinenumberEnd: 1801
    functionName: basic_async::test_should_not_connect_if_tls_active
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - build_single_client
    - get_multiplexed_async_connection
    - TestContext::new_with_mtls
    - redis::Cmd::arg
    - '&mut Cmd::query_async'
    - is_err
    - block_on_all
    - RedisResult::unwrap
    - RedisResult::and_then
    - exec_async
    - is_ok
    - addr
    - connection_info
    - redis::cmd
    - '&mut Cmd::arg'
    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:1807,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:1808,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1808,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1809,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1809,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1810,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1810,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1812,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1813,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1813,1
    - Dst: redis::aio::ConnectionManager::new_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1814,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1814,1
    - Dst: RedisResult::send_packed_command
      Src: /src/redis-rs/redis/tests/test_async.rs:1817,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1818,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1818,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1818,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1817,1
    - Dst: build_simple_pipeline_for_invalidation
      Src: /src/redis-rs/redis/tests/test_async.rs:1821,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1822,1
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/tests/test_async.rs:1823,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1823,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1824,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1824,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1835,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1806
    functionDepth: 9
    functionLinenumber: 1806
    functionLinenumberEnd: 1836
    functionName: basic_async::resp3_pushes_connection_manager
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::set_protocol
    - Ok
    - RedisResult::send_packed_command
    - connection_info
    - '&mut Cmd::arg'
    - set_redis_settings
    - Self::set_push_sender
    - Pipeline::query_async
    - RedisConnectionInfo::default
    - redis::aio::ConnectionManager::new_with_config
    - unwrap
    - cmd
    - tokio::sync::mpsc::unbounded_channel
    - build_simple_pipeline_for_invalidation
    - RedisResult::unwrap
    - redis::Client::open
    - Cmd::arg
    - try_recv
    - RedisResult::get
    - redis::aio::ConnectionManagerConfig::new
    - TestContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn resp3_pushes_connection_manager() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1840,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1841,1
    - Dst: RedisConnectionInfo::set_db
      Src: /src/redis-rs/redis/tests/test_async.rs:1841,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1842,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1842,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1843,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1843,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1845,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1845,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1847,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1847,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1847,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1847,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1839
    functionDepth: 10
    functionLinenumber: 1839
    functionLinenumberEnd: 1855
    functionName: basic_async::select_db
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - set_redis_settings
    - get_multiplexed_async_connection
    - redis::Cmd::arg
    - '&mut Cmd::query_async'
    - RedisResult::unwrap
    - Ok
    - redis_settings
    - connection_info
    - redis::Client::open
    - redis::cmd
    - unwrap
    - TestContext::new
    - RedisConnectionInfo::set_db
    linkageType: ''
    returnType: RedisResult
    signature: async fn select_db() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1860,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1861,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1862,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1865,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1866,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1866,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1867,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1871,1
    - Dst: TestContext::stop_server
      Src: /src/redis-rs/redis/tests/test_async.rs:1872,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1875,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1875,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1875,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1879,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1858
    functionDepth: 5
    functionLinenumber: 1858
    functionLinenumberEnd: 1880
    functionName: basic_async::multiplexed_connection_send_single_disconnect_on_connection_failure
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::set_push_sender
    - sleep
    - tokio::sync::mpsc::unbounded_channel
    - Duration::from_millis
    - drop
    - Ok
    - TestContext::stop_server
    - get_multiplexed_async_connection_with_config
    - supports_resp3
    - TestContext::new
    - into
    - redis::AsyncConnectionConfig::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn multiplexed_connection_send_single_disconnect_on_connection_failure()
      -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1884,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1885,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1885,1
    - Dst: redis::Pipeline::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1887,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_async.rs:1887,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1887,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1894,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_async.rs:1894,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1894,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1901,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1883
    functionDepth: 10
    functionLinenumber: 1883
    functionLinenumberEnd: 1902
    functionName: basic_async::fail_on_empty_command
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - query_async::<String>
    - Ok
    - redis::Pipeline::new
    - TestContext::async_connection
    - redis::Cmd::new
    - unwrap
    - TestContext::new
    - unwrap_err
    linkageType: ''
    returnType: RedisResult
    signature: async fn fail_on_empty_command() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Connection::xadd'
      Src: /src/redis-rs/redis/tests/test_streams.rs:17,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:17,1
    - Dst: '&mut Connection::xadd'
      Src: /src/redis-rs/redis/tests/test_streams.rs:19,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:19,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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 22
    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:26,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - con
    - key
    - start
    - end
    argTypes:
    - '&mut Connection'
    - '&str'
    - i32
    - i32
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 28
    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:39,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:42,1
    - Dst: StreamClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:45,1
    - Dst: Self::idle
      Src: /src/redis-rs/redis/tests/test_streams.rs:45,1
    - Dst: Self::time
      Src: /src/redis-rs/redis/tests/test_streams.rs:45,1
    - Dst: retry
      Src: /src/redis-rs/redis/tests/test_streams.rs:45,1
    - Dst: with_force
      Src: /src/redis-rs/redis/tests/test_streams.rs:45,1
    - Dst: Self::with_justid
      Src: /src/redis-rs/redis/tests/test_streams.rs:45,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_streams.rs:52,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_streams.rs:66,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_streams.rs:67,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:71,1
    - Dst: Self::noack
      Src: /src/redis-rs/redis/tests/test_streams.rs:71,1
    - Dst: Self::block
      Src: /src/redis-rs/redis/tests/test_streams.rs:71,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/tests/test_streams.rs:71,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:71,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_streams.rs:77,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:90,1
    - Dst: Self::noack
      Src: /src/redis-rs/redis/tests/test_streams.rs:90,1
    - Dst: Self::block
      Src: /src/redis-rs/redis/tests/test_streams.rs:90,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/tests/test_streams.rs:90,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_streams.rs:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 31
    functionDepth: 9
    functionLinenumber: 31
    functionLinenumberEnd: 93
    functionName: test_cmd_options
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::with_justid
    - Self::noack
    - StreamClaimOptions::default
    - Self::idle
    - Self::count
    - StreamReadOptions::default
    - retry
    - Self::time
    - assert_args
    - Self::group
    - Self::block
    - with_force
    linkageType: ''
    returnType: void
    signature: fn test_cmd_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:104,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:105,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:107,1
    - Dst: redis::Connection::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:110,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:110,1
    - Dst: redis::Connection::xread
      Src: /src/redis-rs/redis/tests/test_streams.rs:114,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:114,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:114,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_streams.rs:128,1
    - Dst: BTreeMap::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:137,1
    - Dst: insert
      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: redis::Connection::xadd_map
      Src: /src/redis-rs/redis/tests/test_streams.rs:141,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:141,1
    - Dst: redis::Connection::xrange_all
      Src: /src/redis-rs/redis/tests/test_streams.rs:143,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:143,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:151,1
    - Dst: redis::Connection::xlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:154,1
    - Dst: redis::Connection::xadd_maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:159,1
    - Dst: StreamMaxlen::Equals
      Src: /src/redis-rs/redis/tests/test_streams.rs:159,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:159,1
    - Dst: redis::Connection::xlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 96
    functionDepth: 8
    functionLinenumber: 96
    functionLinenumberEnd: 163
    functionName: test_assorted_1
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - insert
    - StreamMaxlen::Equals
    - redis::Connection::xadd
    - BTreeMap::new
    - get
    - redis::Connection::xrange_all
    - TestContext::connection
    - xadd_keyrange
    - xadd
    - redis::Connection::xadd_map
    - unwrap
    - redis::Connection::xlen
    - redis::Connection::xadd_maxlen
    - TestContext::new
    - redis::Connection::xread
    linkageType: ''
    returnType: void
    signature: fn test_assorted_1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:173,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:174,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:176,1
    - Dst: redis::Connection::xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:179,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:187,1
    - Dst: redis::Connection::xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:190,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:190,1
    - Dst: redis::Connection::xgroup_create
      Src: /src/redis-rs/redis/tests/test_streams.rs:196,1
    - Dst: redis::Connection::xinfo_groups
      Src: /src/redis-rs/redis/tests/test_streams.rs:200,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 205
    functionName: test_xgroup_create
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::xinfo_stream
    - TestContext::connection
    - xadd
    - redis::Connection::xinfo_groups
    - unwrap
    - redis::Connection::xgroup_create
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_xgroup_create()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:212,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:213,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:215,1
    - Dst: redis::Connection::xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:218,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:218,1
    - Dst: redis::Connection::xgroup_create
      Src: /src/redis-rs/redis/tests/test_streams.rs:224,1
    - Dst: redis::Connection::xinfo_groups
      Src: /src/redis-rs/redis/tests/test_streams.rs:228,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:230,1
    - Dst: redis::Connection::xinfo_consumers
      Src: /src/redis-rs/redis/tests/test_streams.rs:235,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:237,1
    - Dst: redis::Connection::xgroup_createconsumer
      Src: /src/redis-rs/redis/tests/test_streams.rs:241,1
    - Dst: redis::Connection::xinfo_consumers
      Src: /src/redis-rs/redis/tests/test_streams.rs:245,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:247,1
    - Dst: redis::Connection::xgroup_createconsumer
      Src: /src/redis-rs/redis/tests/test_streams.rs:252,1
    - Dst: redis::Connection::xinfo_consumers
      Src: /src/redis-rs/redis/tests/test_streams.rs:256,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 261
    functionName: test_xgroup_createconsumer
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::xinfo_stream
    - redis::Connection::xinfo_consumers
    - redis::Connection::xgroup_createconsumer
    - TestContext::connection
    - xadd
    - redis::Connection::xinfo_groups
    - unwrap
    - redis::Connection::xgroup_create
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_xgroup_createconsumer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:277,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:278,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:280,1
    - Dst: redis::Connection::xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:283,1
    - Dst: redis::Connection::xinfo_groups
      Src: /src/redis-rs/redis/tests/test_streams.rs:288,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:290,1
    - Dst: redis::Connection::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:300,1
    - Dst: redis::Connection::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:301,1
    - Dst: redis::Connection::xinfo_groups
      Src: /src/redis-rs/redis/tests/test_streams.rs:305,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:307,1
    - Dst: redis::Connection::xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:315,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:315,1
    - Dst: redis::Connection::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:328,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:332,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:332,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:328,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:328,1
    - Dst: redis::Connection::xinfo_consumers
      Src: /src/redis-rs/redis/tests/test_streams.rs:339,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:339,1
    - Dst: redis::Connection::xack
      Src: /src/redis-rs/redis/tests/test_streams.rs:343,1
    - Dst: redis::Connection::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:348,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:352,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:352,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:348,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:348,1
    - Dst: redis::Connection::xinfo_consumers
      Src: /src/redis-rs/redis/tests/test_streams.rs:359,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:359,1
    - Dst: redis::Connection::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:363,1
    - Dst: redis::Connection::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:364,1
    - Dst: redis::Connection::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:365,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:369,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:369,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:365,1
    - Dst: redis::Connection::xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:375,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:375,1
    - Dst: assert_stream_pending_data
      Src: /src/redis-rs/redis/tests/test_streams.rs:380,1
    - Dst: redis::Connection::xpending_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:386,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:386,1
    - Dst: redis::Connection::xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:389,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:389,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 150
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 405
      start: 264
    functionDepth: 9
    functionLinenumber: 264
    functionLinenumberEnd: 405
    functionName: test_assorted_2
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::xpending_consumer_count
    - redis::Connection::xack
    - redis::Connection::xgroup_create_mkstream
    - redis::Connection::xinfo_consumers
    - redis::Connection::xadd
    - assert_stream_pending_data
    - redis::Connection::xpending_count
    - TestContext::connection
    - redis::Connection::xread_options
    - StreamReadOptions::default
    - xadd
    - redis::Connection::xinfo_groups
    - Self::group
    - unwrap
    - TestContext::new
    - redis::Connection::xpending
    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: 412
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 412
    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:416,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:417,1
    - Dst: BTreeMap::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:420,1
    - Dst: RedisResult::to_string
      Src: /src/redis-rs/redis/tests/test_streams.rs:421,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_streams.rs:422,1
    - Dst: redis::Connection::xadd_maxlen_map
      Src: /src/redis-rs/redis/tests/test_streams.rs:423,1
    - Dst: StreamMaxlen::Equals
      Src: /src/redis-rs/redis/tests/test_streams.rs:423,1
    - Dst: redis::Connection::xlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:426,1
    - Dst: redis::Connection::xrange_all
      Src: /src/redis-rs/redis/tests/test_streams.rs:428,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 415
    functionDepth: 8
    functionLinenumber: 415
    functionLinenumberEnd: 433
    functionName: test_xadd_maxlen_map
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - StreamMaxlen::Equals
    - BTreeMap::new
    - TestContext::new
    - redis::Connection::xrange_all
    - RedisResult::to_string
    - TestContext::connection
    - redis::Connection::xadd_maxlen_map
    - unwrap
    - redis::Connection::xlen
    - insert
    linkageType: ''
    returnType: void
    signature: fn test_xadd_maxlen_map()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Connection::del'
      Src: /src/redis-rs/redis/tests/test_streams.rs:457,1
    - Dst: '&mut Connection::xadd_options'
      Src: /src/redis-rs/redis/tests/test_streams.rs:460,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 467
      start: 456
    functionDepth: 9
    functionLinenumber: 456
    functionLinenumberEnd: 467
    functionName: t::e::s::t::_::x::a::d::d::_::o::p::t::i::o::n::s::setup_stream
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - StreamAddOptions::default
    - '&mut Connection::xadd_options'
    - '&mut Connection::del'
    linkageType: ''
    returnType: void
    signature: 'fn setup_stream(con: &mut Connection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:437,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:438,1
    - Dst: redis::Connection::xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:441,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:445,1
    - Dst: Self::nomkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:445,1
    - Dst: redis::Connection::xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:449,1
    - Dst: setup_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:470,1
    - Dst: redis::Connection::xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:472,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:476,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:476,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:476,1
    - Dst: redis::Connection::xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:479,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:479,1
    - Dst: setup_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:484,1
    - Dst: redis::Connection::xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:486,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:490,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:490,1
    - Dst: StreamTrimStrategy::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:491,1
    - Dst: redis::Connection::xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:493,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:493,1
    - Dst: BTreeMap::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:498,1
    - Dst: insert
      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: redis::Connection::xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:502,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:502,1
    - Dst: redis::Connection::xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:504,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 508
      start: 436
    functionDepth: 9
    functionLinenumber: 436
    functionLinenumberEnd: 508
    functionName: test_xadd_options
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - setup_stream
    - redis::Connection::xinfo_stream
    - BTreeMap::new
    - StreamTrimStrategy::minid
    - StreamTrimStrategy::maxlen
    - redis::Connection::xadd_options
    - TestContext::connection
    - Self::nomkstream
    - StreamAddOptions::default
    - unwrap
    - TestContext::new
    - Self::trim
    - insert
    linkageType: ''
    returnType: void
    signature: fn test_xadd_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:513,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:514,1
    - Dst: redis::Connection::xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:515,1
    - Dst: redis::Connection::xadd_maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:517,1
    - Dst: StreamMaxlen::Equals
      Src: /src/redis-rs/redis/tests/test_streams.rs:517,1
    - Dst: redis::Connection::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:519,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:523,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:523,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:519,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:519,1
    - Dst: redis::Connection::xadd_maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:528,1
    - Dst: StreamMaxlen::Equals
      Src: /src/redis-rs/redis/tests/test_streams.rs:528,1
    - Dst: redis::Connection::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:529,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:533,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:533,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:529,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 545
      start: 511
    functionDepth: 9
    functionLinenumber: 511
    functionLinenumberEnd: 545
    functionName: test_xread_options_deleted_pel_entry
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::xgroup_create_mkstream
    - StreamMaxlen::Equals
    - TestContext::connection
    - redis::Connection::xread_options
    - StreamReadOptions::default
    - Self::group
    - unwrap
    - redis::Connection::xadd_maxlen
    - TestContext::new
    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:548,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:548,1
    - Dst: '&mut Connection::xgroup_create_mkstream'
      Src: /src/redis-rs/redis/tests/test_streams.rs:549,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:552,1
    - Dst: '&mut Connection::xread_options'
      Src: /src/redis-rs/redis/tests/test_streams.rs:554,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:558,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:558,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:554,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 564
      start: 547
    functionDepth: 9
    functionLinenumber: 547
    functionLinenumberEnd: 564
    functionName: create_group_add_and_read
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - '&mut Connection::xgroup_create_mkstream'
    - '&mut Connection::flushall'
    - '&mut Connection::xread_options'
    - xadd_keyrange
    - StreamReadOptions::default
    - Self::group
    - unwrap
    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:570,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:571,1
    - Dst: create_group_add_and_read
      Src: /src/redis-rs/redis/tests/test_streams.rs:580,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:587,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:587,1
    - Dst: redis::Connection::xautoclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:590,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:596,1
    - Dst: StreamAutoClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:597,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/tests/test_streams.rs:597,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:590,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:607,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:607,1
    - Dst: redis::Connection::xautoclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:611,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:617,1
    - Dst: StreamAutoClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:618,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/tests/test_streams.rs:618,1
    - Dst: Self::with_justid
      Src: /src/redis-rs/redis/tests/test_streams.rs:618,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 629
      start: 567
    functionDepth: 10
    functionLinenumber: 567
    functionLinenumberEnd: 629
    functionName: test_xautoclaim
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::with_justid
    - redis::Connection::xautoclaim_options
    - create_group_add_and_read
    - StreamAutoClaimOptions::default
    - Duration::from_millis
    - std::thread::sleep
    - Self::count
    - TestContext::connection
    - clone
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_xautoclaim()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:636,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:637,1
    - Dst: create_group_add_and_read
      Src: /src/redis-rs/redis/tests/test_streams.rs:647,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:651,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:651,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:651,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:658,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:658,1
    - Dst: redis::Connection::xclaim
      Src: /src/redis-rs/redis/tests/test_streams.rs:661,1
    - Dst: slice::from_ref
      Src: /src/redis-rs/redis/tests/test_streams.rs:662,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:661,1
    - Dst: redis::Connection::xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:669,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:669,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:678,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:678,1
    - Dst: redis::Connection::xclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:682,1
    - Dst: slice::from_ref
      Src: /src/redis-rs/redis/tests/test_streams.rs:688,1
    - Dst: StreamClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:689,1
    - Dst: Self::with_force
      Src: /src/redis-rs/redis/tests/test_streams.rs:689,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:682,1
    - Dst: redis::Connection::xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:693,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:693,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:701,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:701,1
    - Dst: redis::Connection::xclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:704,1
    - Dst: StreamClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:711,1
    - Dst: Self::with_force
      Src: /src/redis-rs/redis/tests/test_streams.rs:711,1
    - Dst: Self::with_justid
      Src: /src/redis-rs/redis/tests/test_streams.rs:711,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 717
      start: 632
    functionDepth: 10
    functionLinenumber: 632
    functionLinenumberEnd: 717
    functionName: test_xclaim
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - "keys[0]\n        .ids\n        .iter()\n        .map(|msg| &msg.id)\n     \
      \   .collect::<Vec<&String>>"
    - redis::Connection::xclaim
    - Self::with_justid
    - create_group_add_and_read
    - Duration::from_millis
    - redis::Connection::xclaim_options
    - std::thread::sleep
    - StreamClaimOptions::default
    - iter
    - TestContext::connection
    - redis::Connection::xpending
    - slice::from_ref
    - Self::with_force
    - unwrap
    - TestContext::new
    - map
    linkageType: ''
    returnType: void
    signature: fn test_xclaim()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:721,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:722,1
    - Dst: redis::Connection::xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:724,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:728,1
    - Dst: redis::Connection::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:730,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:731,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:730,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:730,1
    - Dst: redis::Connection::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:742,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:746,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/tests/test_streams.rs:746,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:746,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:742,1
    - Dst: redis::Connection::xinfo_groups
      Src: /src/redis-rs/redis/tests/test_streams.rs:750,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:750,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:754,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:754,1
    - Dst: redis::Connection::xclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:756,1
    - Dst: slice::from_ref
      Src: /src/redis-rs/redis/tests/test_streams.rs:762,1
    - Dst: StreamClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:763,1
    - Dst: Self::with_justid
      Src: /src/redis-rs/redis/tests/test_streams.rs:763,1
    - Dst: Self::with_lastid
      Src: /src/redis-rs/redis/tests/test_streams.rs:763,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:765,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:756,1
    - Dst: redis::Connection::xinfo_groups
      Src: /src/redis-rs/redis/tests/test_streams.rs:770,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:770,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:774,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:774,1
    - Dst: redis::Connection::xclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:776,1
    - Dst: slice::from_ref
      Src: /src/redis-rs/redis/tests/test_streams.rs:782,1
    - Dst: StreamClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:783,1
    - Dst: Self::with_justid
      Src: /src/redis-rs/redis/tests/test_streams.rs:783,1
    - Dst: Self::with_lastid
      Src: /src/redis-rs/redis/tests/test_streams.rs:783,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:785,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:776,1
    - Dst: redis::Connection::xinfo_groups
      Src: /src/redis-rs/redis/tests/test_streams.rs:790,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 792
      start: 720
    functionDepth: 9
    functionLinenumber: 720
    functionLinenumberEnd: 792
    functionName: test_xclaim_last_id
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::xgroup_create_mkstream
    - Self::with_justid
    - Duration::from_millis
    - redis::Connection::xclaim_options
    - Self::with_lastid
    - std::thread::sleep
    - Self::count
    - StreamClaimOptions::default
    - TestContext::connection
    - xadd_keyrange
    - redis::Connection::xread_options
    - StreamReadOptions::default
    - slice::from_ref
    - Self::group
    - redis::Connection::xinfo_groups
    - as_str
    - unwrap
    - TestContext::new
    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:796,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:797,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:809,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:812,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:816,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:816,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:816,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:812,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:812,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:824,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:824,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:824,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_streams.rs:824,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:827,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:827,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:836,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:836,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:839,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:843,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:843,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:843,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:843,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:839,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:849,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:864,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:864,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:867,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_streams.rs:864,1
    - Dst: xpending_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:874,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:874,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 113
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 893
      start: 795
    functionDepth: 9
    functionLinenumber: 795
    functionLinenumberEnd: 893
    functionName: test_xreadgroup_with_claim_option
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - claim
    - xread_options
    - xpending
    - Duration::from_millis
    - xpending_count
    - collect
    - std::thread::sleep
    - iter
    - xadd_keyrange
    - run_test_if_version_supported
    - StreamReadOptions::default
    - connection
    - Self::group
    - clone
    - unwrap
    - count
    - map
    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:897,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:898,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:910,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:913,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:917,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:917,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:917,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:913,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:913,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:924,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:924,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:927,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_streams.rs:924,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:931,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:931,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:934,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:937,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:941,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:941,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:941,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:941,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:937,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:947,1
    - Dst: xpending_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:975,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:975,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:994,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:994,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:997,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1001,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1001,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:1001,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:997,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1006,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 143
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 896
    functionDepth: 9
    functionLinenumber: 896
    functionLinenumberEnd: 1024
    functionName: test_xreadgroup_claim_with_idle_and_incoming_messages
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - claim
    - xread_options
    - xpending_count
    - Duration::from_millis
    - collect
    - std::thread::sleep
    - iter
    - xadd_keyrange
    - run_test_if_version_supported
    - StreamReadOptions::default
    - connection
    - Self::group
    - clone
    - unwrap
    - count
    - map
    linkageType: ''
    returnType: void
    signature: fn test_xreadgroup_claim_with_idle_and_incoming_messages()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:1028,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1029,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:1045,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1049,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1053,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1053,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1053,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1049,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1058,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:1062,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:1062,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1065,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1069,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1069,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:1069,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1065,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1074,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1089,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1089,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1095,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1095,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1027
    functionDepth: 9
    functionLinenumber: 1027
    functionLinenumberEnd: 1099
    functionName: test_xreadgroup_claim_multiple_streams
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - claim
    - xread_options
    - Duration::from_millis
    - std::thread::sleep
    - xadd_keyrange
    - run_test_if_version_supported
    - StreamReadOptions::default
    - connection
    - Self::group
    - unwrap
    - count
    - xpending_consumer_count
    linkageType: ''
    returnType: void
    signature: fn test_xreadgroup_claim_multiple_streams()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:1105,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1106,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1109,1
    - Dst: redis::Connection::xdel
      Src: /src/redis-rs/redis/tests/test_streams.rs:1112,1
    - Dst: redis::Connection::xdel
      Src: /src/redis-rs/redis/tests/test_streams.rs:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1102
    functionDepth: 2
    functionLinenumber: 1102
    functionLinenumberEnd: 1119
    functionName: test_xdel
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - redis::Connection::xdel
    - TestContext::new
    - 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:1123,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1124,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1125,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1125,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1137,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1137,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1139,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1139,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1139,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1139,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1142,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1142,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1145,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1149,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1149,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1149,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1151,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1145,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1154,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1154,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1160,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1165,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:1165,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:1166,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1168,1
    - Dst: set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1165,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1160,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1160,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1178,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1178,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1183,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1183,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1186,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1192,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1122
    functionDepth: 9
    functionLinenumber: 1122
    functionLinenumberEnd: 1204
    functionName: test_xadd_options_deletion_policy_keepref
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - len
    - xadd_options
    - xpending
    - StreamTrimStrategy::maxlen
    - xinfo_stream
    - connection
    - Self::group
    - unwrap
    - map
    - run_test_if_version_supported
    - StreamReadOptions::default
    - xadd
    - count
    - Self::trim
    - xpending_consumer_count
    - try_into
    - xread_options
    - set_deletion_policy
    - StreamAddOptions::default
    - flushdb
    - xgroup_create_mkstream
    linkageType: ''
    returnType: void
    signature: fn test_xadd_options_deletion_policy_keepref()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:1208,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1209,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1210,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1210,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1222,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1222,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1224,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1224,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1224,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1224,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1227,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1227,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1230,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1234,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1234,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1234,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1236,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1230,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1239,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1239,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1245,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1250,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:1250,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:1251,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1253,1
    - Dst: set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1250,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1245,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1245,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1263,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1263,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1268,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1268,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1271,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1277,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1207
    functionDepth: 9
    functionLinenumber: 1207
    functionLinenumberEnd: 1289
    functionName: test_xadd_options_deletion_policy_delref
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - len
    - xadd_options
    - xpending
    - StreamTrimStrategy::maxlen
    - xinfo_stream
    - connection
    - Self::group
    - unwrap
    - map
    - run_test_if_version_supported
    - StreamReadOptions::default
    - xadd
    - count
    - Self::trim
    - xpending_consumer_count
    - try_into
    - xread_options
    - set_deletion_policy
    - StreamAddOptions::default
    - flushdb
    - xgroup_create_mkstream
    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:1293,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1294,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1295,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1295,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1307,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1307,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1309,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1309,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1309,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1309,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1312,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1312,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1315,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1319,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1319,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1319,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1321,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1315,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1324,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1324,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1330,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1335,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:1335,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:1336,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1338,1
    - Dst: set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1335,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1330,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1330,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1351,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1351,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1356,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1356,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1359,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1365,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1292
    functionDepth: 9
    functionLinenumber: 1292
    functionLinenumberEnd: 1377
    functionName: test_xadd_options_deletion_policy_acked
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - len
    - xadd_options
    - xpending
    - StreamTrimStrategy::maxlen
    - xinfo_stream
    - connection
    - Self::group
    - unwrap
    - map
    - run_test_if_version_supported
    - StreamReadOptions::default
    - xadd
    - count
    - Self::trim
    - xpending_consumer_count
    - try_into
    - xread_options
    - set_deletion_policy
    - StreamAddOptions::default
    - flushdb
    - xgroup_create_mkstream
    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:1381,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1382,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1383,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1383,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1395,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1395,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1397,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1397,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1397,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1397,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1400,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1400,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1403,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1407,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1407,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1407,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1409,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1403,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1412,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1412,1
    - Dst: xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1418,1
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:1421,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:1421,1
    - Dst: Self::set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1421,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1418,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1426,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1426,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1430,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1436,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1380
    functionDepth: 9
    functionLinenumber: 1380
    functionLinenumberEnd: 1448
    functionName: test_xtrim_options_deletion_policy_keepref
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - len
    - xpending
    - StreamTrimOptions::minid
    - clone
    - xinfo_stream
    - Self::set_deletion_policy
    - connection
    - Self::group
    - unwrap
    - map
    - run_test_if_version_supported
    - StreamReadOptions::default
    - xadd
    - count
    - xpending_consumer_count
    - try_into
    - xread_options
    - flushdb
    - xgroup_create_mkstream
    - xtrim_options
    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:1452,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1453,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1454,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1454,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1466,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1466,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1468,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1468,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1468,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1468,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1471,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1471,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1474,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1478,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1478,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1478,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1480,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1474,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1483,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1483,1
    - Dst: xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1489,1
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:1492,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:1492,1
    - Dst: Self::set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1492,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1489,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1497,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1497,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1501,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1507,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1451
    functionDepth: 9
    functionLinenumber: 1451
    functionLinenumberEnd: 1519
    functionName: test_xtrim_options_deletion_policy_delref
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - len
    - xpending
    - StreamTrimOptions::minid
    - clone
    - xinfo_stream
    - Self::set_deletion_policy
    - connection
    - Self::group
    - unwrap
    - map
    - run_test_if_version_supported
    - StreamReadOptions::default
    - xadd
    - count
    - xpending_consumer_count
    - try_into
    - xread_options
    - flushdb
    - xgroup_create_mkstream
    - xtrim_options
    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:1523,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1524,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1525,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1525,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1537,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1537,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1539,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1539,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1539,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1539,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1542,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1542,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1545,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1549,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1549,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1549,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1551,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1545,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1554,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1554,1
    - Dst: xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1560,1
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:1563,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:1563,1
    - Dst: Self::set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1563,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1560,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1568,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1568,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1572,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1578,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1522
    functionDepth: 9
    functionLinenumber: 1522
    functionLinenumberEnd: 1590
    functionName: test_xtrim_options_deletion_policy_acked
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - len
    - xpending
    - StreamTrimOptions::minid
    - clone
    - xinfo_stream
    - Self::set_deletion_policy
    - connection
    - Self::group
    - unwrap
    - map
    - run_test_if_version_supported
    - StreamReadOptions::default
    - xadd
    - count
    - xpending_consumer_count
    - try_into
    - xread_options
    - flushdb
    - xgroup_create_mkstream
    - xtrim_options
    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:1594,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1595,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1596,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1596,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1611,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1611,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1613,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1613,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1613,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1613,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1616,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1616,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1621,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1625,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1625,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1625,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1621,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1632,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1632,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1645,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1645,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1650,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1657,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1657,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1659,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1659,1
    - Dst: xack
      Src: /src/redis-rs/redis/tests/test_streams.rs:1662,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1662,1
    - Dst: xpending
      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: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1665,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1665,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1667,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1669,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1669,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1671,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1671,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1676,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1678,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1678,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1680,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1680,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1685,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1692,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1692,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1694,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1694,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1701,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1701,1
    - Dst: xadd
      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: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1702,1
    - Dst: xpending
      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: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1705,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1705,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1708,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1715,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1715,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1717,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1717,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1720,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1722,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1722,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1724,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1724,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1730,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1734,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1734,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1734,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1730,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1740,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1740,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1742,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1742,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1746,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1748,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1748,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1750,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1750,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1753,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1755,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1755,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1757,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1757,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1761,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1761,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1763,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1763,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1763,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1763,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1765,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:1767,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:1767,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1780,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1788,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 299
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1593
    functionDepth: 9
    functionLinenumber: 1593
    functionLinenumberEnd: 1790
    functionName: test_xdel_ex
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - try_into
    - xread_options
    - xpending
    - xinfo_stream
    - xdel_ex
    - run_test_if_version_supported
    - StreamReadOptions::default
    - as_str
    - xadd
    - connection
    - flushdb
    - Self::group
    - unwrap
    - count
    - xgroup_create_mkstream
    - xack
    - map
    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:1794,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1795,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1796,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1796,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1813,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1813,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1815,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1815,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1815,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1815,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1819,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1819,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1824,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1828,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1828,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1828,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1824,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1835,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1835,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1848,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1848,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1851,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1851,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1854,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:1865,1
    - Dst: zip
      Src: /src/redis-rs/redis/tests/test_streams.rs:1865,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:1865,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1866,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:1866,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1870,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1870,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1872,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1872,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1877,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1877,1
    - Dst: xadd
      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: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1878,1
    - Dst: xgroup_create_mkstream
      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: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1885,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1895,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1899,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1899,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1899,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1895,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1905,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1905,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: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1912,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1912,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1917,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1924,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1924,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1926,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1926,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1928,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1928,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1933,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1940,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1940,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1942,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1942,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1947,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1947,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1949,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1949,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1949,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1949,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1952,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1956,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1956,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1956,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1952,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1963,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1963,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1965,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1965,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1967,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1967,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1970,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1983,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1983,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1985,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1985,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1987,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1987,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1990,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:2006,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2006,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:2008,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2008,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2008,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2008,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2011,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2015,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:2015,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2015,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2011,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2021,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2021,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2023,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2023,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2025,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2025,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:2029,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2043,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2043,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2045,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2045,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2047,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2047,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:2051,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2064,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2064,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2066,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2066,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2068,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2068,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:2072,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:2081,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 384
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 1793
    functionDepth: 9
    functionLinenumber: 1793
    functionLinenumberEnd: 2088
    functionName: test_xack_del
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - len
    - xpending
    - clone
    - xack_del
    - xinfo_stream
    - connection
    - Self::group
    - unwrap
    - map
    - RedisResult::iter
    - iter
    - run_test_if_version_supported
    - StreamReadOptions::default
    - xadd
    - zip
    - count
    - try_into
    - xread_options
    - flushdb
    - xgroup_create_mkstream
    linkageType: ''
    returnType: void
    signature: fn test_xack_del()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2094,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2095,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2098,1
    - Dst: redis::Connection::xtrim
      Src: /src/redis-rs/redis/tests/test_streams.rs:2102,1
    - Dst: StreamMaxlen::Equals
      Src: /src/redis-rs/redis/tests/test_streams.rs:2102,1
    - Dst: redis::Connection::xtrim
      Src: /src/redis-rs/redis/tests/test_streams.rs:2105,1
    - Dst: StreamMaxlen::Equals
      Src: /src/redis-rs/redis/tests/test_streams.rs:2105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2091
    functionDepth: 3
    functionLinenumber: 2091
    functionLinenumberEnd: 2107
    functionName: test_xtrim
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - StreamMaxlen::Equals
    - redis::Connection::xtrim
    - TestContext::connection
    - xadd_keyrange
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_xtrim()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2113,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2114,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2117,1
    - Dst: redis::Connection::xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2121,1
    - Dst: StreamTrimOptions::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:2123,1
    - Dst: redis::Connection::xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2128,1
    - Dst: StreamTrimOptions::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:2130,1
    - Dst: redis::Connection::del
      Src: /src/redis-rs/redis/tests/test_streams.rs:2134,1
    - Dst: redis::Connection::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2137,1
    - Dst: redis::Connection::xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2141,1
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:2143,1
    - Dst: redis::Connection::xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2148,1
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:2150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2110
    functionDepth: 3
    functionLinenumber: 2110
    functionLinenumberEnd: 2153
    functionName: test_xtrim_options
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::del
    - StreamTrimOptions::maxlen
    - redis::Connection::xadd
    - StreamTrimOptions::minid
    - TestContext::connection
    - xadd_keyrange
    - redis::Connection::xtrim_options
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_xtrim_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2162,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2163,1
    - Dst: redis::Connection::xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2166,1
    - Dst: redis::Connection::xgroup_destroy
      Src: /src/redis-rs/redis/tests/test_streams.rs:2170,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2174,1
    - Dst: redis::Connection::xgroup_create
      Src: /src/redis-rs/redis/tests/test_streams.rs:2177,1
    - Dst: redis::Connection::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2181,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2185,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:2185,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2181,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2181,1
    - Dst: redis::Connection::xgroup_delconsumer
      Src: /src/redis-rs/redis/tests/test_streams.rs:2191,1
    - Dst: redis::Connection::xgroup_destroy
      Src: /src/redis-rs/redis/tests/test_streams.rs:2195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2156
    functionDepth: 9
    functionLinenumber: 2156
    functionLinenumberEnd: 2197
    functionName: test_xgroup
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::xgroup_create_mkstream
    - redis::Connection::xgroup_delconsumer
    - TestContext::connection
    - redis::Connection::xread_options
    - StreamReadOptions::default
    - redis::Connection::xgroup_destroy
    - xadd
    - Self::group
    - unwrap
    - redis::Connection::xgroup_create
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_xgroup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2206,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2207,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2209,1
    - Dst: redis::Connection::xrange_all
      Src: /src/redis-rs/redis/tests/test_streams.rs:2212,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2212,1
    - Dst: redis::Connection::xrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2215,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2215,1
    - Dst: redis::Connection::xrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2218,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2218,1
    - Dst: redis::Connection::xrange_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2221,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2200
    functionDepth: 2
    functionLinenumber: 2200
    functionLinenumberEnd: 2223
    functionName: test_xrange
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::xrange_count
    - redis::Connection::xrange_all
    - TestContext::connection
    - xadd
    - unwrap
    - TestContext::new
    - redis::Connection::xrange
    linkageType: ''
    returnType: void
    signature: fn test_xrange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2232,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2233,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2235,1
    - Dst: redis::Connection::xrevrange_all
      Src: /src/redis-rs/redis/tests/test_streams.rs:2238,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2238,1
    - Dst: redis::Connection::xrevrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2241,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2241,1
    - Dst: redis::Connection::xrevrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2244,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2244,1
    - Dst: redis::Connection::xrevrange_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2247,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2249
      start: 2226
    functionDepth: 2
    functionLinenumber: 2226
    functionLinenumberEnd: 2249
    functionName: test_xrevrange
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::xrevrange
    - redis::Connection::xrevrange_all
    - TestContext::connection
    - xadd
    - unwrap
    - TestContext::new
    - redis::Connection::xrevrange_count
    linkageType: ''
    returnType: void
    signature: fn test_xrevrange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2260,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2261,1
    - Dst: create_group_add_and_read
      Src: /src/redis-rs/redis/tests/test_streams.rs:2269,1
    - Dst: redis::Connection::xdel
      Src: /src/redis-rs/redis/tests/test_streams.rs:2277,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2277,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2277,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:2278,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:2278,1
    - Dst: redis::Connection::xautoclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2280,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2286,1
    - Dst: StreamAutoClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2287,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2287,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2280,1
    - Dst: TestContext::get_version
      Src: /src/redis-rs/redis/tests/test_streams.rs:2292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2301
      start: 2252
    functionDepth: 10
    functionLinenumber: 2252
    functionLinenumberEnd: 2301
    functionName: test_xautoclaim_invalid_pel_entries_claiming_full_entries
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - TestContext::get_version
    - redis::Connection::xdel
    - redis::Connection::xautoclaim_options
    - create_group_add_and_read
    - StreamAutoClaimOptions::default
    - Duration::from_millis
    - std::thread::sleep
    - Self::count
    - TestContext::connection
    - clone
    - unwrap
    - TestContext::new
    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:2312,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2313,1
    - Dst: create_group_add_and_read
      Src: /src/redis-rs/redis/tests/test_streams.rs:2321,1
    - Dst: redis::Connection::xdel
      Src: /src/redis-rs/redis/tests/test_streams.rs:2329,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2329,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2329,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:2330,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:2330,1
    - Dst: redis::Connection::xautoclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2332,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2338,1
    - Dst: StreamAutoClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2339,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2339,1
    - Dst: Self::with_justid
      Src: /src/redis-rs/redis/tests/test_streams.rs:2339,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2332,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/tests/test_streams.rs:2343,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/tests/test_streams.rs:2344,1
    - Dst: TestContext::get_version
      Src: /src/redis-rs/redis/tests/test_streams.rs:2346,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_streams.rs:2354,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2357,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2358,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_streams.rs:2363,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2366,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2375
      start: 2304
    functionDepth: 10
    functionLinenumber: 2304
    functionLinenumberEnd: 2375
    functionName: test_xautoclaim_invalid_pel_entries_claiming_just_ids
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - TestContext::get_version
    - redis::Connection::xdel
    - Self::with_justid
    - Default::default
    - redis::Connection::xautoclaim_options
    - create_group_add_and_read
    - StreamAutoClaimOptions::default
    - Duration::from_millis
    - std::thread::sleep
    - Self::count
    - std::mem::take
    - TestContext::connection
    - clone
    - unwrap
    - TestContext::new
    - insert
    linkageType: ''
    returnType: void
    signature: fn test_xautoclaim_invalid_pel_entries_claiming_just_ids()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Connection::exists'
      Src: /src/redis-rs/redis/tests/test_basic.rs:62,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 69
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 69
    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:73,1
    - Dst: redis::parse_redis_url
      Src: /src/redis-rs/redis/tests/test_basic.rs:74,1
    - Dst: unwrap
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: basic::test_parse_redis_url
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - redis::parse_redis_url
    - '&str::to_string'
    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:81,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    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:86,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:87,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:89,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:89,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:89,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:89,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:89,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:94,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:94,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_basic.rs:94,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 103
    functionName: basic::test_args
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - exec
    - RedisResult::unwrap
    - '&mut Cmd::exec'
    - TestContext::connection
    - redis::cmd
    - TestContext::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_args()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:107,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:108,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:114,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:115,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:115,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:115,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:115,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:115,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:115,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:124,1
    - Dst: RedisConnectionInfo::set_password
      Src: /src/redis-rs/redis/tests/test_basic.rs:124,1
    - Dst: Self::set_username
      Src: /src/redis-rs/redis/tests/test_basic.rs:124,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:127,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:127,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:127,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:127,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:127,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:127,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:132,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:132,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:132,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 106
    functionDepth: 10
    functionLinenumber: 106
    functionLinenumberEnd: 134
    functionName: basic::test_can_authenticate_with_username_and_password
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - set_redis_settings
    - TestContext::new
    - '&mut Cmd::query'
    - RedisResult::unwrap
    - get_connection
    - TestContext::connection
    - redis_settings
    - Self::set_username
    - arg
    - connection_info
    - redis::Cmd::new
    - redis::Client::open
    - Cmd::arg
    - unwrap
    - Self::arg
    - cmd
    - RedisConnectionInfo::set_password
    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:138,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:139,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:141,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:141,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:141,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:141,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:141,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:144,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:144,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:144,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:144,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 153
    functionName: basic::test_getset
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - exec
    - RedisResult::unwrap
    - TestContext::connection
    - redis::cmd
    - TestContext::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_getset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:158,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:159,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:162,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:162,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:162,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:162,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:162,1
    - Dst: redis::Connection::key_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:163,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:163,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:167,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:167,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:167,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:167,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:167,1
    - Dst: redis::Connection::key_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:172,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:172,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:176,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:176,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:176,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:176,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:176,1
    - Dst: redis::Connection::key_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:181,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:181,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:185,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:185,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:185,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:185,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:185,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:185,1
    - Dst: redis::Connection::key_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:191,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:191,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:195,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:195,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:195,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:195,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:195,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:195,1
    - Dst: redis::Connection::key_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:201,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 203
    functionName: basic::test_key_type
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - redis::Connection::key_type
    - exec
    - RedisResult::unwrap
    - TestContext::connection
    - arg
    - redis::cmd
    - unwrap
    - TestContext::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_key_type()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:208,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:209,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:210,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:238,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:238,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:238,1
    - Dst: parse
      Src: /src/redis-rs/redis/tests/test_basic.rs:238,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 240
    functionName: basic::test_client_tracking_doesnt_block_execution
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - ignore
    - RedisResult::unwrap
    - TestContext::connection
    - redis::Connection::get
    - arg
    - query
    - parse
    - unwrap
    - redis::Pipeline::cmd
    - TestContext::new
    - cmd
    - redis::pipe
    - '&mut Cmd::arg'
    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:244,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:245,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:247,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:247,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:247,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:247,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: basic::test_incr
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - exec
    - RedisResult::unwrap
    - TestContext::connection
    - redis::cmd
    - TestContext::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_incr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:253,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:254,1
    - Dst: redis::Connection::ping_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:256,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:256,1
    - Dst: redis::Connection::ping
      Src: /src/redis-rs/redis/tests/test_basic.rs:258,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 260
    functionName: basic::test_ping
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::ping
    - redis::Connection::ping_message
    - RedisResult::unwrap
    - TestContext::connection
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_ping()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:264,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:265,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:267,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:267,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:267,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:267,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 275
    functionName: basic::test_getdel
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - exec
    - RedisResult::unwrap
    - TestContext::connection
    - redis::cmd
    - TestContext::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_getdel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:279,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:280,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:282,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:282,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:282,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:282,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:282,1
    - Dst: redis::Commands::get_ex::<_, usize>
      Src: /src/redis-rs/redis/tests/test_basic.rs:290,1
    - Dst: Expiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:290,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:290,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:294,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:294,1
    - Dst: redis::Connection::get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:295,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:295,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:295,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:299,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:299,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:300,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:300,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:304,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:304,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:304,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:304,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:304,1
    - Dst: redis::Connection::get_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:311,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:311,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:311,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:315,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:315,1
    - Dst: redis::Connection::get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:316,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 318
    functionName: basic::test_getex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - sleep
    - redis::Connection::get_ex
    - Duration::from_millis
    - exec
    - RedisResult::unwrap
    - Expiry::EX
    - redis::Commands::get_ex::<_, usize>
    - TestContext::connection
    - redis::Connection::get
    - redis::cmd
    - Duration::from_secs
    - unwrap
    - redis::Connection::get_int
    - TestContext::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_getex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:322,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:323,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:325,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_basic.rs:325,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 334
    functionName: basic::test_info
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::query
    - RedisResult::unwrap
    - TestContext::connection
    - redis::cmd
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_info()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:338,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:339,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:341,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:341,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:341,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:341,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:341,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:341,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:347,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:347,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:347,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:347,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:347,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:347,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:354,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:354,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:354,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:354,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:359,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:359,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:359,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 363
    functionName: basic::test_hash_ops
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - exec
    - RedisResult::unwrap
    - TestContext::connection
    - arg
    - redis::cmd
    - '&mut Cmd::query'
    - unwrap
    - TestContext::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_hash_ops()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:367,1
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:369,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:371,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:372,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:372,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:372,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:372,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:372,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:372,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:372,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:372,1
    - Dst: redis::Connection::hexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:381,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:381,1
    - Dst: redis::Connection::httl
      Src: /src/redis-rs/redis/tests/test_basic.rs:386,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:386,1
    - Dst: redis::Connection::hpttl
      Src: /src/redis-rs/redis/tests/test_basic.rs:391,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:391,1
    - Dst: redis::Connection::hexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:396,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:396,1
    - Dst: redis::Connection::hexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:402,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:402,1
    - Dst: redis::Connection::hpexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:408,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:408,1
    - Dst: redis::Connection::hpexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:414,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:414,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:420,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:420,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:420,1
    - Dst: as_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:420,1
    - Dst: redis::Connection::hexpire_at
      Src: /src/redis-rs/redis/tests/test_basic.rs:424,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:424,1
    - Dst: redis::Connection::hexpire_time
      Src: /src/redis-rs/redis/tests/test_basic.rs:434,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:434,1
    - Dst: redis::Connection::hpexpire_time
      Src: /src/redis-rs/redis/tests/test_basic.rs:436,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:436,1
    - Dst: redis::Connection::hpersist
      Src: /src/redis-rs/redis/tests/test_basic.rs:442,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:442,1
    - Dst: redis::Connection::hpttl
      Src: /src/redis-rs/redis/tests/test_basic.rs:444,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 121
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 448
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 448
    functionName: basic::test_hash_expiration
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::httl
    - '&mut Cmd::arg'
    - redis::Connection::hpttl
    - redis::Connection::hexpire_time
    - SystemTime::now
    - arg
    - duration_since
    - unwrap
    - redis::Connection::hexpire_at
    - redis::Cmd::arg
    - redis::Connection::hpexpire
    - redis::Connection::hexpire
    - RedisResult::unwrap
    - run_test_if_version_supported
    - redis::Connection::hpexpire_time
    - as_secs
    - redis::Connection::hpersist
    - exec
    - TestContext::connection
    - redis::cmd
    - TestContext::new
    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:456,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:456,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: 462
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 462
    functionName: basic::verify_exact_hash_fields_and_values
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - redis::Commands::hgetall
    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:469,1
    - Dst: for_each
      Src: /src/redis-rs/redis/tests/test_basic.rs:469,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: 472
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 472
    functionName: basic::verify_fields_absence_from_hash
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - for_each
    - '&[&str]::iter'
    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:483,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:484,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_basic.rs:494,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:497,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:497,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:502,1
    - Dst: Self::extend_from_slice
      Src: /src/redis-rs/redis/tests/test_basic.rs:524,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:527,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:527,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 546
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 546
    functionName: basic::test_hget_del
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::extend_from_slice
    - run_test_if_version_supported
    - hgetall
    - connection
    - unwrap
    - Vec::from
    - verify_fields_absence_from_hash
    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:560,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:561,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:605,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:612,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:612,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_basic.rs:614,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:616,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:616,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:621,1
    - Dst: redis::Commands::hget_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:639,1
    - Dst: Expiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:639,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:639,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_basic.rs:642,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:646,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:653,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:653,1
    - Dst: Self::extend_from_slice
      Src: /src/redis-rs/redis/tests/test_basic.rs:655,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:657,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:657,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 671
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 671
    functionName: basic::test_hget_ex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - len
    - sleep
    - Self::extend_from_slice
    - Duration::from_millis
    - Expiry::EX
    - run_test_if_version_supported
    - hgetall
    - connection
    - redis::Commands::hget_ex
    - unwrap
    - verify_exact_hash_fields_and_values
    - Vec::from
    - verify_fields_absence_from_hash
    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:679,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:680,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:685,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:706,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:706,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:706,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:746,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:746,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 751
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 751
    functionName: basic::test_hget_ex_field_expiration_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - sleep
    - Duration::from_millis
    - SystemTime::now
    - run_test_if_version_supported
    - connection
    - duration_since
    - unwrap
    - verify_exact_hash_fields_and_values
    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:774,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:775,1
    - Dst: generate_random_testing_hash_key
      Src: /src/redis-rs/redis/tests/test_basic.rs:777,1
    - Dst: HashFieldExpirationOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:780,1
    - Dst: Self::set_existence_check
      Src: /src/redis-rs/redis/tests/test_basic.rs:780,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:784,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:784,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:790,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:796,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:796,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:806,1
    - Dst: Self::set_existence_check
      Src: /src/redis-rs/redis/tests/test_basic.rs:810,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:812,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:812,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:822,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:826,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:830,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:830,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:841,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:841,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:856,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:856,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:856,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:860,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:860,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:870,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:884,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:884,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:887,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:887,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:898,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:898,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:914,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:914,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:915,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:915,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:915,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:919,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:919,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:929,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:942,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:942,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:946,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:946,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 167
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 952
      start: 773
    functionDepth: 9
    functionLinenumber: 773
    functionLinenumberEnd: 952
    functionName: basic::test_hset_ex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - verify_fields_absence_from_hash
    - redis::Commands::hgetall
    - sleep
    - SetExpiry::EX
    - Duration::from_millis
    - collect
    - HashFieldExpirationOptions::default
    - generate_random_testing_hash_key
    - Self::set_existence_check
    - run_test_if_version_supported
    - iter
    - Self::set_expiration
    - hgetall
    - connection
    - unwrap
    - verify_exact_hash_fields_and_values
    - hset_ex
    - map
    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:960,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:961,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:966,1
    - Dst: HashFieldExpirationOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:969,1
    - Dst: Self::set_existence_check
      Src: /src/redis-rs/redis/tests/test_basic.rs:969,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:969,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:971,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:973,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:973,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:978,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:978,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:979,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:979,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:984,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:984,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:984,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:987,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:987,1
    - Dst: as_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:987,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:988,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:988,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:993,1
    - Dst: SetExpiry::PXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:994,1
    - Dst: as_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:994,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:995,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:995,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:1000,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:1000,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:1001,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1001,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:1007,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:1008,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1008,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:1014,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 959
    functionDepth: 9
    functionLinenumber: 959
    functionLinenumberEnd: 1018
    functionName: basic::test_hsetex_field_expiration_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - SetExpiry::PXAT
    - as_secs
    - sleep
    - SetExpiry::EX
    - duration_since
    - Duration::from_millis
    - SystemTime::now
    - SetExpiry::EXAT
    - HashFieldExpirationOptions::default
    - Self::set_existence_check
    - run_test_if_version_supported
    - as_millis
    - Self::set_expiration
    - connection
    - SetExpiry::PX
    - unwrap
    - verify_exact_hash_fields_and_values
    - hset_ex
    linkageType: ''
    returnType: void
    signature: fn test_hsetex_field_expiration_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:1022,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1023,1
    - Dst: HashFieldExpirationOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1027,1
    - Dst: Self::set_existence_check
      Src: /src/redis-rs/redis/tests/test_basic.rs:1027,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:1027,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:1029,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:1032,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1032,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:1038,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:1038,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:1039,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1039,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:1044,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:1053,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:1053,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:1056,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1056,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:1061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1021
    functionDepth: 9
    functionLinenumber: 1021
    functionLinenumberEnd: 1065
    functionName: basic::test_hsetex_can_update_the_expiration_of_a_field_that_has_already_been_set_to_expire
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - sleep
    - SetExpiry::EX
    - Duration::from_millis
    - Self::set_existence_check
    - HashFieldExpirationOptions::default
    - run_test_if_version_supported
    - Self::set_expiration
    - hgetall
    - connection
    - unwrap
    - verify_exact_hash_fields_and_values
    - hset_ex
    - verify_fields_absence_from_hash
    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:1072,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1073,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1075,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1075,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1075,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1075,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1075,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1079,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1079,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1079,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1079,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1079,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs: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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1071
    functionDepth: 2
    functionLinenumber: 1071
    functionLinenumberEnd: 1082
    functionName: basic::test_unlink
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - exec
    - RedisResult::unwrap
    - TestContext::connection
    - redis::cmd
    - TestContext::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_unlink()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1086,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1087,1
    - Dst: redis::Commands::smembers
      Src: /src/redis-rs/redis/tests/test_basic.rs:1091,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1091,1
    - Dst: TlsFilePaths::sort_unstable
      Src: /src/redis-rs/redis/tests/test_basic.rs:1092,1
    - Dst: redis::Commands::smembers
      Src: /src/redis-rs/redis/tests/test_basic.rs:1096,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1096,1
    - Dst: redis::Commands::smembers
      Src: /src/redis-rs/redis/tests/test_basic.rs:1102,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1107
    functionName: basic::test_set_ops
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::sort_unstable
    - redis::Commands::smembers
    - TestContext::connection
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_set_ops()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1111,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1112,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1116,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1116,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1116,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1116,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1116,1
    - Dst: TlsFilePaths::sort_unstable
      Src: /src/redis-rs/redis/tests/test_basic.rs:1121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1110
    functionDepth: 2
    functionLinenumber: 1110
    functionLinenumberEnd: 1125
    functionName: basic::test_scan
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - TlsFilePaths::sort_unstable
    - TestContext::connection
    - query
    - redis::cmd
    - unwrap
    - TestContext::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_scan()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1129,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1130,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1132,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1132,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1132,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1132,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1132,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1134,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1134,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1134,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1134,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1134,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1142,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1142,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1142,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/tests/test_basic.rs:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1128
    functionDepth: 2
    functionLinenumber: 1128
    functionLinenumberEnd: 1147
    functionName: basic::test_optionals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - unwrap_or
    - exec
    - RedisResult::unwrap
    - TestContext::connection
    - query
    - redis::cmd
    - '&mut Cmd::query'
    - unwrap
    - TestContext::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_optionals()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1151,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1152,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1153,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1156,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1156,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1156,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1156,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1156,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_basic.rs:1157,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1160,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1160,1
    - Dst: '&mut Cmd::cursor_arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1160,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1160,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:1160,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1160,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:1167,1
    - Dst: RedisServer::remove
      Src: /src/redis-rs/redis/tests/test_basic.rs:1171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1150
    functionDepth: 8
    functionLinenumber: 1150
    functionLinenumberEnd: 1175
    functionName: basic::test_scanning
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - map
    - redis::Cmd::arg
    - HashSet::new
    - Self::iter
    - RedisServer::insert
    - exec
    - RedisResult::unwrap
    - '&mut Cmd::clone'
    - TestContext::connection
    - redis::cmd
    - RedisServer::remove
    - unwrap
    - '&mut Cmd::cursor_arg'
    - TestContext::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_scanning()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1181,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1182,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1186,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1186,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1186,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1186,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1186,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1194,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1194,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1194,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1194,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1194,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1202,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1203,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:1203,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1202,1
    - Dst: None::is_some
      Src: /src/redis-rs/redis/tests/test_basic.rs:1212,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:1216,1
    - Dst: kind
      Src: /src/redis-rs/redis/tests/test_basic.rs:1216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1178
    functionDepth: 9
    functionLinenumber: 1178
    functionLinenumberEnd: 1228
    functionName: basic::test_checked_scanning_error
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - exec
    - RedisResult::unwrap
    - TestContext::connection
    - redis::cmd
    - ScanOptions::default
    - Self::with_count
    - unwrap
    - None::is_some
    - Some
    - kind
    - TestContext::new
    - scan_options::<String>
    - '&mut Cmd::arg'
    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:1232,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1233,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1234,1
    - Dst: redis::Connection::hset
      Src: /src/redis-rs/redis/tests/test_basic.rs:1237,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1237,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_basic.rs:1240,1
    - Dst: hscan_match::<&str, &str, (String, usize)>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1244,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1244,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:1248,1
    - Dst: RedisServer::remove
      Src: /src/redis-rs/redis/tests/test_basic.rs:1251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1231
    functionDepth: 8
    functionLinenumber: 1231
    functionLinenumberEnd: 1255
    functionName: basic::test_filtered_scanning
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - HashSet::new
    - RedisServer::insert
    - redis::Connection::hset
    - TestContext::connection
    - hscan_match::<&str, &str, (String, usize)>
    - RedisServer::remove
    - unwrap
    - TestContext::new
    - map
    linkageType: ''
    returnType: void
    signature: fn test_filtered_scanning()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1259,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1260,1
    - Dst: redis::Connection::append
      Src: /src/redis-rs/redis/tests/test_basic.rs:1262,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1262,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::hset
      Src: /src/redis-rs/redis/tests/test_basic.rs:1265,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1265,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1268,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:1268,1
    - Dst: Self::with_pattern
      Src: /src/redis-rs/redis/tests/test_basic.rs:1268,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1269,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1269,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1270,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1273,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1274,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1274,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1275,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1278,1
    - Dst: Self::with_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:1278,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1279,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1279,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1280,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1283,1
    - Dst: Self::with_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:1283,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1284,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1284,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1258
    functionDepth: 9
    functionLinenumber: 1258
    functionLinenumberEnd: 1287
    functionName: basic::test_scan_with_options_works
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::hset
    - Self::with_pattern
    - redis::Connection::append
    - Self::collect
    - TestContext::connection
    - ScanOptions::default
    - Self::with_type
    - unwrap
    - TestContext::new
    - scan_options::<String>
    - Self::with_count
    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:1291,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1292,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1294,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1294,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1294,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1294,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1294,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1294,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1294,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1294,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1294,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1294,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1294,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1294,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1290
    functionDepth: 2
    functionLinenumber: 1290
    functionLinenumberEnd: 1310
    functionName: basic::test_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - ignore
    - TestContext::connection
    - arg
    - query
    - unwrap
    - redis::Pipeline::cmd
    - TestContext::new
    - cmd
    - redis::pipe
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_pipeline()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1314,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1315,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1317,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1317,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1317,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1317,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1317,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1322,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1322,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1322,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1322,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1322,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1328,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1328,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1328,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1328,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1328,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1334,1
    - Dst: redis::Pipeline::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1334,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1334,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1334,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1334,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1345,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1345,1
    - Dst: "arg(\"x\")\n            .query::<String>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1345,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1313
    functionDepth: 2
    functionLinenumber: 1313
    functionLinenumberEnd: 1350
    functionName: basic::test_pipeline_with_err
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - ignore
    - get
    - exec
    - RedisResult::unwrap
    - redis::Pipeline::set
    - TestContext::connection
    - "arg(\"x\")\n            .query::<String>"
    - redis::cmd
    - unwrap
    - TestContext::new
    - redis::pipe
    - '&mut Cmd::arg'
    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:1354,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1355,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1356,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1357,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1357,1
    - Dst: hset
      Src: /src/redis-rs/redis/tests/test_basic.rs:1357,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1357,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1357,1
    - Dst: Pipeline::exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1363,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:1364,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_basic.rs:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1353
    functionDepth: 9
    functionLinenumber: 1353
    functionLinenumberEnd: 1369
    functionName: basic::test_pipeline_returns_server_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - to_string
    - Pipeline::exec
    - get
    - TestContext::connection
    - hset
    - Pipeline::set
    - TestContext::new
    - unwrap_err
    - redis::pipe
    - ignore
    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:1373,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1374,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1376,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1376,1
    - Dst: redis::Cmd::ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1376,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1376,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1372
    functionDepth: 2
    functionLinenumber: 1372
    functionLinenumberEnd: 1377
    functionName: basic::test_empty_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - exec
    - redis::Cmd::ignore
    - TestContext::connection
    - unwrap
    - redis::Pipeline::cmd
    - TestContext::new
    - 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:1381,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1382,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1384,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_basic.rs:1384,1
    - Dst: '&mut Pipeline::cmd'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1384,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1384,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1384,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1384,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1384,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1384,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1384,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1384,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1384,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1384,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1384,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1380
    functionDepth: 2
    functionLinenumber: 1380
    functionLinenumberEnd: 1401
    functionName: basic::test_pipeline_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - ignore
    - cmd
    - '&mut Pipeline::cmd'
    - TestContext::connection
    - arg
    - query
    - unwrap
    - TestContext::new
    - '&mut Cmd::arg'
    - redis::pipe
    - redis::Pipeline::atomic
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_transaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1405,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1406,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1408,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1408,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1411,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1411,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1411,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1411,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1411,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1418,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_basic.rs:1418,1
    - Dst: '&mut Pipeline::ping'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1418,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1418,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1418,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1418,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1418,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:1418,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:1418,1
    - Dst: into_server_errors
      Src: /src/redis-rs/redis/tests/test_basic.rs:1429,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1429,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1436,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1404
    functionDepth: 9
    functionLinenumber: 1404
    functionLinenumberEnd: 1438
    functionName: basic::test_pipeline_transaction_with_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - '&mut Pipeline::ping'
    - into_server_errors
    - redis::Pipeline::atomic
    - '&mut Cmd::arg'
    - redis::Connection::set
    - unwrap
    - redis::Commands::get
    - unwrap_err
    - redis::Cmd::arg
    - get
    - RedisResult::unwrap
    - set
    - Option::unwrap
    - exec
    - "atomic()\n            .ping()\n            .set(\"x\", 142)\n            .ignore()\n\
      \            .get(\"x\")\n            .set(\"x\", 142)\n            .query::<()>"
    - TestContext::connection
    - redis::cmd
    - TestContext::new
    - redis::pipe
    - ignore
    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:1442,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1443,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1445,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1447,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1447,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1447,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1447,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1447,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1447,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1447,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1447,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1459,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1459,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1459,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1459,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1462,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1462,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1462,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1462,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1462,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1462,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1462,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1462,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1441
    functionDepth: 2
    functionLinenumber: 1441
    functionLinenumberEnd: 1476
    functionName: basic::test_pipeline_reuse_query
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - RedisResult::unwrap
    - '&mut Cmd::exec'
    - TestContext::connection
    - arg
    - query
    - redis::cmd
    - unwrap
    - TestContext::new
    - cmd
    - redis::pipe
    - ignore
    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:1480,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1481,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1483,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1485,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1485,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1485,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1485,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1485,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1485,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1485,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1485,1
    - Dst: clear
      Src: /src/redis-rs/redis/tests/test_basic.rs:1494,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1498,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1498,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1498,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1498,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1500,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1500,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1500,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1500,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1500,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1500,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1500,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1500,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1500,1
    - Dst: clear
      Src: /src/redis-rs/redis/tests/test_basic.rs:1510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1479
    functionDepth: 3
    functionLinenumber: 1479
    functionLinenumberEnd: 1514
    functionName: basic::test_pipeline_reuse_query_clear
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - RedisResult::unwrap
    - '&mut Cmd::exec'
    - TestContext::connection
    - arg
    - query
    - redis::cmd
    - unwrap
    - clear
    - TestContext::new
    - cmd
    - redis::pipe
    - ignore
    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:1518,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1520,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1520,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1517
    functionDepth: 2
    functionLinenumber: 1517
    functionLinenumberEnd: 1522
    functionName: basic::test_pipeline_len
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - arg
    - cmd
    - 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:1526,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1529,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1529,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1525
    functionDepth: 2
    functionLinenumber: 1525
    functionLinenumberEnd: 1531
    functionName: basic::test_pipeline_is_empty
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - arg
    - cmd
    - 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:1535,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1536,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1539,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1539,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1539,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1539,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1539,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1542,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1542,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1542,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1542,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1543,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1543,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1543,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1543,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1544,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_basic.rs:1544,1
    - Dst: '&mut Pipeline::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::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1544,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1544,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1544,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1544,1
    - Dst: 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
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1534
    functionDepth: 3
    functionLinenumber: 1534
    functionLinenumberEnd: 1565
    functionName: basic::test_real_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - ignore
    - exec
    - '&mut Pipeline::cmd'
    - RedisResult::unwrap
    - redis::Pipeline::atomic
    - '&mut Cmd::exec'
    - TestContext::connection
    - arg
    - query
    - redis::cmd
    - '&mut Cmd::query'
    - unwrap
    - TestContext::new
    - cmd
    - redis::pipe
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_real_transaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1569,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1570,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1573,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1573,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1573,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1573,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1573,1
    - Dst: redis::transaction
      Src: /src/redis-rs/redis/tests/test_basic.rs:1575,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1576,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1576,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1576,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1577,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1577,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1577,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1577,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1577,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1577,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1577,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1568
    functionDepth: 3
    functionLinenumber: 1568
    functionLinenumberEnd: 1588
    functionName: basic::test_real_transaction_highlevel
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - ignore
    - '&mut Cmd::query'
    - exec
    - RedisResult::unwrap
    - TestContext::connection
    - arg
    - query
    - redis::cmd
    - redis::transaction
    - Pipeline::cmd
    - TestContext::new
    - cmd
    - '&mut Cmd::arg'
    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:1593,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1594,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1597,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:1598,1
    - Dst: redis::Connection::set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:1600,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1604,1
    - Dst: Barrier::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1604,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:1605,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:1607,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1608,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1609,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1609,1
    - Dst: Self::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1611,1
    - Dst: RedisResult::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1613,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1613,1
    - Dst: RedisResult::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1617,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1617,1
    - Dst: RedisServer::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1622,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1623,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1623,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1623,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1623,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1623,1
    - Dst: Self::join
      Src: /src/redis-rs/redis/tests/test_basic.rs:1631,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1631,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:1632,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:1635,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1635,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:1643,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1643,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:1654,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1591
    functionDepth: 8
    functionLinenumber: 1591
    functionLinenumberEnd: 1666
    functionName: basic::test_pubsub
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::set_push_sender
    - Arc::new
    - Self::join
    - Barrier::new
    - redis::Connection::as_pubsub
    - RedisServer::clone
    - '&mut Cmd::arg'
    - RedisResult::subscribe
    - RedisServer::wait
    - spawn
    - unwrap
    - redis::Cmd::arg
    - RedisResult::unwrap
    - RedisResult::get_message
    - expect
    - try_recv
    - std::sync::mpsc::channel
    - Self::wait
    - exec
    - TestContext::connection
    - redis::cmd
    - supports_resp3
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_pubsub()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1670,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1671,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1674,1
    - Dst: redis::Connection::set_read_timeout
      Src: /src/redis-rs/redis/tests/test_basic.rs:1675,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:1676,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:1676,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1675,1
    - Dst: PubSub::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1678,1
    - Dst: PubSub::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1680,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1680,1
    - Dst: PubSub::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1681,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:1681,1
    - Dst: redis::Connection::publish
      Src: /src/redis-rs/redis/tests/test_basic.rs:1684,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1684,1
    - Dst: PubSub::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1686,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1669
    functionDepth: 1
    functionLinenumber: 1669
    functionLinenumberEnd: 1689
    functionName: basic::test_pubsub_handles_timeout
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::publish
    - redis::Connection::set_read_timeout
    - Duration::from_millis
    - RedisResult::unwrap_err
    - RedisResult::unwrap
    - TestContext::connection
    - PubSub::as_pubsub
    - PubSub::subscribe
    - Some
    - unwrap
    - PubSub::get_message
    - TestContext::new
    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:1694,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1695,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1698,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1702,1
    - Dst: Barrier::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1702,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:1703,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1706,1
    - Dst: Barrier::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1706,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:1707,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:1709,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1710,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1711,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1711,1
    - Dst: Self::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1713,1
    - Dst: Self::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1714,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:1716,1
    - Dst: RedisResult::ping
      Src: /src/redis-rs/redis/tests/test_basic.rs:1717,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1717,1
    - Dst: RedisResult::ping
      Src: /src/redis-rs/redis/tests/test_basic.rs:1720,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1720,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:1724,1
    - Dst: RedisResult::ping_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1725,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1725,1
    - Dst: RedisResult::ping_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1728,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1728,1
    - Dst: RedisResult::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1732,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1732,1
    - Dst: RedisResult::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1736,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1736,1
    - Dst: RedisServer::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1741,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1743,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1743,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1743,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1743,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1743,1
    - Dst: RedisServer::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1752,1
    - Dst: Self::join
      Src: /src/redis-rs/redis/tests/test_basic.rs:1754,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1692
    functionDepth: 8
    functionLinenumber: 1692
    functionLinenumberEnd: 1755
    functionName: basic::test_pubsub_send_ping
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::join
    - Barrier::new
    - redis::Connection::as_pubsub
    - RedisResult::ping
    - RedisServer::clone
    - '&mut Cmd::arg'
    - RedisResult::subscribe
    - RedisServer::wait
    - spawn
    - unwrap
    - redis::Cmd::arg
    - RedisResult::unwrap
    - RedisResult::get_message
    - expect
    - RedisResult::ping_message
    - Self::wait
    - exec
    - TestContext::connection
    - redis::cmd
    - supports_resp3
    - TestContext::new
    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:1759,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1760,1
    - Dst: RedisResult::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1761,1
    - Dst: PubSub::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1762,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1762,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1763,1
    - Dst: redis::Connection::publish
      Src: /src/redis-rs/redis/tests/test_basic.rs:1765,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1765,1
    - Dst: PubSub::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1766,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1766,1
    - Dst: get_payload
      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: redis::Connection::publish
      Src: /src/redis-rs/redis/tests/test_basic.rs:1769,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1769,1
    - Dst: PubSub::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1770,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1770,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_basic.rs:1770,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1758
    functionDepth: 1
    functionLinenumber: 1758
    functionLinenumberEnd: 1772
    functionName: basic::pub_sub_subscription_to_multiple_channels
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::publish
    - RedisResult::unwrap
    - RedisResult::as_pubsub
    - get_payload
    - TestContext::connection
    - PubSub::subscribe
    - unwrap
    - PubSub::get_message
    - TestContext::new
    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:1776,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1777,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:1779,1
    - Dst: redis::Connection::set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:1781,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1783,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1784,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1784,1
    - Dst: RedisResult::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: RedisResult::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: RedisResult::psubscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1787,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1787,1
    - Dst: RedisResult::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: RedisResult::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: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1793,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1793,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1794,1
    - Dst: RedisResult::unwrap
      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: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:1797,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:1815,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1815,1
    - Dst: redis::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_basic.rs:1817,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_basic.rs:1817,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1817,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1817,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_basic.rs:1818,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1775
    functionDepth: 1
    functionLinenumber: 1775
    functionLinenumberEnd: 1824
    functionName: basic::test_pubsub_unsubscribe
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::set_push_sender
    - RedisResult::subscribe
    - first
    - std::sync::mpsc::channel
    - RedisResult::psubscribe
    - RedisResult::unwrap
    - redis::from_redis_value_ref
    - TestContext::connection
    - redis::Connection::get
    - redis::Connection::as_pubsub
    - redis::Connection::set
    - try_recv
    - push
    - unwrap
    - Result::unwrap
    - supports_resp3
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_pubsub_unsubscribe()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1828,1
    - Dst: TestContext::connection
      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: std::sync::Arc::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1831,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1831,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1831,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:1832,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:1833,1
    - Dst: std::thread::spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:1835,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1836,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1837,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1837,1
    - Dst: Self::send
      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: RedisResult::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1840,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1840,1
    - Dst: get_channel_name
      Src: /src/redis-rs/redis/tests/test_basic.rs:1841,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_basic.rs:1842,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1842,1
    - Dst: lock
      Src: /src/redis-rs/redis/tests/test_basic.rs:1843,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1843,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_basic.rs:1843,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1852,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1852,1
    - Dst: Self::send
      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: "(\n        PendingRequest::recv"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1857,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1857,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1862,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1862,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1862,1
    - Dst: "arg(\"foo\")\n                .arg(index)\n                .query::<i32>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1862,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1862,1
    - Dst: "(\n        PendingRequest::recv"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1868,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1868,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1869,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1869,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1869,1
    - Dst: "arg(\"bar\")\n            .arg(-1)\n            .query::<i32>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1869,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1869,1
    - Dst: Self::join
      Src: /src/redis-rs/redis/tests/test_basic.rs:1874,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1874,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1827
    functionDepth: 8
    functionLinenumber: 1827
    functionLinenumberEnd: 1882
    functionName: basic::test_pubsub_subscribe_while_messages_are_sent
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - Self::join
    - get_payload
    - redis::Connection::as_pubsub
    - clone
    - Result::unwrap
    - "arg(\"foo\")\n                .arg(index)\n                .query::<i32>"
    - lock
    - '&mut Cmd::arg'
    - RedisResult::subscribe
    - std::sync::Arc::new
    - get_channel_name
    - std::sync::Mutex::new
    - std::thread::spawn
    - Self::send
    - unwrap
    - "arg(\"bar\")\n            .arg(-1)\n            .query::<i32>"
    - redis::Cmd::arg
    - RedisResult::unwrap
    - RedisResult::get_message
    - push
    - std::sync::mpsc::channel
    - Self::unwrap
    - TestContext::connection
    - redis::cmd
    - "(\n        PendingRequest::recv"
    - TestContext::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:1886,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1887,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1890,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1894,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1894,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1895,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1895,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1885
    functionDepth: 1
    functionLinenumber: 1885
    functionLinenumberEnd: 1897
    functionName: basic::test_pubsub_unsubscribe_no_subs
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap
    - TestContext::connection
    - redis::Connection::get
    - redis::Connection::set
    - redis::Connection::as_pubsub
    - unwrap
    - TestContext::new
    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:1901,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1902,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1905,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1906,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1906,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1910,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1910,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1911,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1911,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1900
    functionDepth: 2
    functionLinenumber: 1900
    functionLinenumberEnd: 1913
    functionName: basic::test_pubsub_unsubscribe_one_sub
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - RedisResult::subscribe
    - RedisResult::unwrap
    - TestContext::connection
    - redis::Connection::get
    - redis::Connection::as_pubsub
    - redis::Connection::set
    - unwrap
    - TestContext::new
    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:1917,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1918,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1921,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1922,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1922,1
    - Dst: RedisResult::psubscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1923,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1923,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1927,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1927,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1928,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1928,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1916
    functionDepth: 2
    functionLinenumber: 1916
    functionLinenumberEnd: 1930
    functionName: basic::test_pubsub_unsubscribe_one_sub_one_psub
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - RedisResult::subscribe
    - RedisResult::psubscribe
    - RedisResult::unwrap
    - TestContext::connection
    - redis::Connection::get
    - redis::Connection::as_pubsub
    - redis::Connection::set
    - unwrap
    - TestContext::new
    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:1934,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1935,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1938,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:1940,1
    - Dst: redis::Connection::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1942,1
    - Dst: ControlFlow::Break
      Src: /src/redis-rs/redis/tests/test_basic.rs:1954,1
    - Dst: ControlFlow::Break
      Src: /src/redis-rs/redis/tests/test_basic.rs:1956,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1942,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:1966,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:1966,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1968,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1968,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1968,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1968,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1968,1
    - Dst: Self::join
      Src: /src/redis-rs/redis/tests/test_basic.rs:1976,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1976,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1979,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1979,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1980,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1980,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1933
    functionDepth: 2
    functionLinenumber: 1933
    functionLinenumberEnd: 1982
    functionName: basic::scoped_pubsub
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - sleep
    - Duration::from_millis
    - exec
    - RedisResult::unwrap
    - Self::join
    - TestContext::connection
    - expect
    - redis::Connection::get
    - ControlFlow::Break
    - redis::Connection::set
    - redis::cmd
    - spawn
    - unwrap
    - TestContext::new
    - redis::Connection::subscribe
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn scoped_pubsub()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1986,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1987,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1989,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1989,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1989,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1989,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 1985
    functionDepth: 2
    functionLinenumber: 1985
    functionLinenumberEnd: 2009
    functionName: basic::test_tuple_args
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - exec
    - RedisResult::unwrap
    - TestContext::connection
    - redis::cmd
    - TestContext::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_tuple_args()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2013,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2014,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:2019,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_basic.rs:2019,1
    - Dst: '&mut Pipeline::set'
      Src: /src/redis-rs/redis/tests/test_basic.rs:2019,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:2019,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2019,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:2019,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2019,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2019,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:2019,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2012
    functionDepth: 9
    functionLinenumber: 2012
    functionLinenumberEnd: 2032
    functionName: basic::test_nice_api
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - ignore
    - get
    - redis::Pipeline::atomic
    - TestContext::connection
    - set
    - query
    - unwrap
    - TestContext::new
    - redis::pipe
    - '&mut Pipeline::set'
    linkageType: ''
    returnType: void
    signature: fn test_nice_api()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2036,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2049
      start: 2035
    functionDepth: 1
    functionLinenumber: 2035
    functionLinenumberEnd: 2049
    functionName: basic::test_auto_m_versions
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - TestContext::new
    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:2053,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2054,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:2061,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2061,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:2068,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2068,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:2075,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2075,1
    - Dst: redis::Connection::hscan
      Src: /src/redis-rs/redis/tests/test_basic.rs:2100,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2100,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2101,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:2103,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_basic.rs:2106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2052
    functionDepth: 8
    functionLinenumber: 2052
    functionLinenumberEnd: 2112
    functionName: basic::test_nice_hash_api
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Commands::hgetall
    - HashSet::new
    - redis::Connection::hscan
    - TestContext::connection
    - unwrap
    - TestContext::new
    - insert
    - map
    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:2116,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2117,1
    - Dst: redis::Commands::lrange
      Src: /src/redis-rs/redis/tests/test_basic.rs:2141,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:2141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2115
    functionDepth: 1
    functionLinenumber: 2115
    functionLinenumberEnd: 2147
    functionName: basic::test_nice_list_api
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - redis::Commands::lrange
    - TestContext::new
    - expect
    linkageType: ''
    returnType: void
    signature: fn test_nice_list_api()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2151,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2152,1
    - Dst: redis::Connection::zrangebyscore_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2158,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2158,1
    - Dst: redis::Connection::zrangebyscore_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2163,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2150
    functionDepth: 1
    functionLinenumber: 2150
    functionLinenumberEnd: 2165
    functionName: basic::test_tuple_decoding_regression
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - redis::Connection::zrangebyscore_withscores
    - unwrap
    - TestContext::new
    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:2170,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2171,1
    - Dst: HashMap::from
      Src: /src/redis-rs/redis/tests/test_basic.rs:2173,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:2177,1
    - Dst: hscan::<_, (String, u32)>
      Src: /src/redis-rs/redis/tests/test_basic.rs:2181,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2181,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2168
    functionDepth: 1
    functionLinenumber: 2168
    functionLinenumberEnd: 2199
    functionName: basic::test_tuple_decoding_from_iter
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - iter
    - TestContext::connection
    - HashMap::from
    - hscan::<_, (String, u32)>
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_tuple_decoding_from_iter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2203,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2202
    functionDepth: 1
    functionLinenumber: 2202
    functionLinenumberEnd: 2208
    functionName: basic::test_setbit_and_getbit_single_offset
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - TestContext::new
    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:2219,1
    - Dst: max
      Src: /src/redis-rs/redis/tests/test_basic.rs:2219,1
    - Dst: '&str::len'
      Src: /src/redis-rs/redis/tests/test_basic.rs:2219,1
    - Dst: chars
      Src: /src/redis-rs/redis/tests/test_basic.rs:2225,1
    - Dst: zip
      Src: /src/redis-rs/redis/tests/test_basic.rs:2225,1
    - Dst: chars
      Src: /src/redis-rs/redis/tests/test_basic.rs:2227,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:2225,1
    - Dst: op
      Src: /src/redis-rs/redis/tests/test_basic.rs:2229,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:2225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 3
    argNames:
    - str1
    - str2
    - op
    argTypes:
    - '&str'
    - '&str'
    - F
    constantsTouched: []
    func_position:
      end: 2233
      start: 2215
    functionDepth: 9
    functionLinenumber: 2215
    functionLinenumberEnd: 2233
    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:
    - map
    - chars
    - op
    - collect
    - '&str::len'
    - zip
    - 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:2212,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2213,1
    - Dst: BTreeMap::from
      Src: /src/redis-rs/redis/tests/test_basic.rs:2258,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:2260,1
    - Dst: Self::keys
      Src: /src/redis-rs/redis/tests/test_basic.rs:2264,1
    - Dst: cloned
      Src: /src/redis-rs/redis/tests/test_basic.rs:2264,1
    - Dst: keys().cloned().collect::<Vec<_>>
      Src: /src/redis-rs/redis/tests/test_basic.rs:2264,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2268,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2268,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2273,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2273,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2278,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2278,1
    - Dst: choose
      Src: /src/redis-rs/redis/tests/test_basic.rs:2282,1
    - Dst: rng
      Src: /src/redis-rs/redis/tests/test_basic.rs:2282,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2282,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2284,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2284,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2290,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2290,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2297,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2297,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2304,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2304,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2311,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2211
    functionDepth: 3
    functionLinenumber: 2211
    functionLinenumberEnd: 2313
    functionName: basic::test_bit_operations
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - keys().cloned().collect::<Vec<_>>
    - Self::iter
    - rng
    - Self::keys
    - cloned
    - BTreeMap::from
    - RedisResult::unwrap
    - run_test_if_version_supported
    - connection
    - choose
    - redis::Commands::get
    linkageType: ''
    returnType: void
    signature: fn test_bit_operations()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2317,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2318,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:2320,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:2320,1
    - Dst: TestContext::stop_server
      Src: /src/redis-rs/redis/tests/test_basic.rs:2323,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:2325,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:2325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2316
    functionDepth: 2
    functionLinenumber: 2316
    functionLinenumberEnd: 2330
    functionName: basic::test_redis_server_down
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - query::<String>
    - TestContext::connection
    - redis::cmd
    - TestContext::stop_server
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_redis_server_down()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2334,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2335,1
    - Dst: redis::Connection::zadd_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:2337,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2337,1
    - Dst: redis::Connection::zadd_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:2339,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2374
      start: 2333
    functionDepth: 1
    functionLinenumber: 2333
    functionLinenumberEnd: 2374
    functionName: basic::test_zinterstore_weights
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - unwrap
    - redis::Connection::zadd_multiple
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_zinterstore_weights()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2378,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2379,1
    - Dst: redis::Connection::zadd_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:2381,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2381,1
    - Dst: redis::Connection::zadd_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:2383,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2377
    functionDepth: 1
    functionLinenumber: 2377
    functionLinenumberEnd: 2439
    functionName: basic::test_zunionstore_weights
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - unwrap
    - redis::Connection::zadd_multiple
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_zunionstore_weights()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2443,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2444,1
    - Dst: redis::Connection::zrembylex
      Src: /src/redis-rs/redis/tests/test_basic.rs:2463,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2463,1
    - Dst: redis::Connection::zrange
      Src: /src/redis-rs/redis/tests/test_basic.rs:2466,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2442
    functionDepth: 1
    functionLinenumber: 2442
    functionLinenumberEnd: 2468
    functionName: basic::test_zrembylex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::zrembylex
    - TestContext::connection
    - redis::Connection::zrange
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_zrembylex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2475,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2476,1
    - Dst: redis::Connection::zadd
      Src: /src/redis-rs/redis/tests/test_basic.rs:2479,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2479,1
    - Dst: redis::Connection::zrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2481,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2481,1
    - Dst: redis::Connection::zrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2484,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:2484,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2484,1
    - Dst: redis::Connection::zrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2488,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:2488,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2488,1
    - Dst: redis::Connection::zrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2500,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:2500,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2500,1
    - Dst: redis::Connection::zrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2503,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:2503,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2503,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:2506,1
    - Dst: redis::Connection::zrandmember_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2507,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2507,1
    - Dst: redis::Connection::zrandmember_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2510,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2510,1
    - Dst: redis::Connection::zrandmember_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2514,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2514,1
    - Dst: redis::Connection::zrandmember_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2517,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2474
    functionDepth: 1
    functionLinenumber: 2474
    functionLinenumberEnd: 2519
    functionName: basic::test_zrandmember
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::zrandmember_withscores
    - redis::Connection::zadd
    - TestContext::connection
    - redis::Connection::zrandmember
    - Some
    - unwrap
    - supports_resp3
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_zrandmember()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2523,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2524,1
    - Dst: redis::Connection::sismember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2529,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2529,1
    - Dst: redis::Connection::sismember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2532,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2522
    functionDepth: 1
    functionLinenumber: 2522
    functionLinenumberEnd: 2534
    functionName: basic::test_sismember
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - unwrap
    - redis::Connection::sismember
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_sismember()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2541,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2542,1
    - Dst: redis::Connection::smismember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2546,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2540
    functionDepth: 1
    functionLinenumber: 2540
    functionLinenumberEnd: 2548
    functionName: basic::test_smismember
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - unwrap
    - TestContext::new
    - 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:2552,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2553,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2555,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2555,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::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:2573,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:2573,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:2573,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:2573,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:2573,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2573,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2580,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2584
      start: 2551
    functionDepth: 2
    functionLinenumber: 2551
    functionLinenumberEnd: 2584
    functionName: basic::test_object_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - exec
    - RedisResult::unwrap
    - TestContext::connection
    - redis::Connection::get
    - redis::Connection::set
    - arg
    - redis::cmd
    - unwrap
    - TestContext::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_object_commands()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2588,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2589,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2591,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2591,1
    - Dst: redis::Connection::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2592,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2592,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:2592,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:2592,1
    - Dst: TlsFilePaths::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2596,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:2592,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2600,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2600,1
    - Dst: redis::Connection::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2601,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2601,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:2601,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:2601,1
    - Dst: TlsFilePaths::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2605,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:2601,1
    - Dst: redis::Connection::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2609,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2609,1
    - Dst: redis::Connection::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2612,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2587
    functionDepth: 9
    functionLinenumber: 2587
    functionLinenumberEnd: 2614
    functionName: basic::test_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::mget
    - into_iter
    - RedisResult::unwrap
    - collect
    - TestContext::connection
    - redis::Connection::set
    - unwrap
    - TlsFilePaths::unwrap
    - TestContext::new
    - map
    linkageType: ''
    returnType: void
    signature: fn test_mget()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2618,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2619,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2621,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2621,1
    - Dst: redis::Commands::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2624,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2626
      start: 2617
    functionDepth: 1
    functionLinenumber: 2617
    functionLinenumberEnd: 2626
    functionName: basic::test_variable_length_get
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Commands::mget
    - RedisResult::unwrap
    - TestContext::connection
    - redis::Connection::set
    - unwrap
    - TestContext::new
    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:2630,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2631,1
    - Dst: redis::Connection::rename
      Src: /src/redis-rs/redis/tests/test_basic.rs:2635,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2637
      start: 2629
    functionDepth: 1
    functionLinenumber: 2629
    functionLinenumberEnd: 2637
    functionName: basic::test_multi_generics
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - unwrap
    - TestContext::new
    - 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:2641,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2642,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2644,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2644,1
    - Dst: redis::Connection::set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2645,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2645,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2648,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2648,1
    - Dst: redis::Connection::set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2649,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2640
    functionDepth: 9
    functionLinenumber: 2640
    functionLinenumberEnd: 2651
    functionName: basic::test_set_options_with_get
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::get
    - SetOptions::default
    - TestContext::connection
    - redis::Connection::set_options
    - unwrap
    - TestContext::new
    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:2655,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2658,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2658,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2658,1
    - Dst: RedisResult::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2658,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2661,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2663,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2665,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2665,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2665,1
    - Dst: RedisResult::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2665,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2668,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2670,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2672,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2672,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2672,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2676,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2678,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2678,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2678,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:2680,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2682,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2684,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2684,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2684,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2687
      start: 2654
    functionDepth: 9
    functionLinenumber: 2654
    functionLinenumberEnd: 2687
    functionName: basic::test_set_options_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - RedisResult::with_expiration
    - Self::conditional_set
    - Self::get
    - SetExpiry::EX
    - SetExpiry::EXAT
    - SetOptions::default
    - assert_args
    - SetExpiry::PX
    - Self::with_expiration
    linkageType: ''
    returnType: void
    signature: fn test_set_options_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2691,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2697,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2697,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2697,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2698,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2699,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2699,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2699,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2700,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2701,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2701,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2701,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2702,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2703,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2703,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2703,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2704,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2707,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2707,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2707,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2709,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2707,1
    - Dst: RedisResult::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2707,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2711,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2712,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2713,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2713,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2713,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2715,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2713,1
    - Dst: RedisResult::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2713,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2717,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2718,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2719,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2719,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2719,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2721,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2719,1
    - Dst: RedisResult::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2719,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2723,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2724,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2725,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2725,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2725,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2727,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2725,1
    - Dst: RedisResult::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2725,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2729,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2731
      start: 2690
    functionDepth: 9
    functionLinenumber: 2690
    functionLinenumberEnd: 2731
    functionName: basic::test_set_options_value_comparison
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - RedisResult::with_expiration
    - Self::conditional_set
    - get
    - SetExpiry::EX
    - ValueComparison::ifdeq
    - SetOptions::default
    - Self::value_comparison
    - ValueComparison::ifdne
    - ValueComparison::ifne
    - assert_args
    - SetExpiry::PX
    - ValueComparison::ifeq
    linkageType: ''
    returnType: void
    signature: fn test_set_options_value_comparison()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:2736,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2737,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2749,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2753,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2753,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2754,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2753,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2749,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2764,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2768,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2768,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2769,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2768,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2764,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2777,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2781,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2781,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2782,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2781,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2735
    functionDepth: 9
    functionLinenumber: 2735
    functionLinenumberEnd: 2790
    functionName: basic::test_set_value_comparison_value_equals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - set_options
    - get
    - SetOptions::default
    - ValueComparison::ifeq
    - run_test_if_version_supported
    - connection
    - unwrap
    - Self::value_comparison
    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:2795,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2796,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2808,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2812,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2812,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2813,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2812,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2808,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2824,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2828,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2828,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2829,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2828,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2824,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2842,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2846,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2846,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2847,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2846,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2855
      start: 2794
    functionDepth: 9
    functionLinenumber: 2794
    functionLinenumberEnd: 2855
    functionName: basic::test_set_value_comparison_value_not_equals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - set_options
    - get
    - SetOptions::default
    - run_test_if_version_supported
    - ValueComparison::ifne
    - connection
    - unwrap
    - Self::value_comparison
    linkageType: ''
    returnType: void
    signature: fn test_set_value_comparison_value_not_equals()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:2860,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2861,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2867,1
    - Dst: String::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2872,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2873,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/tests/test_basic.rs:2877,1
    - Dst: fill_bytes
      Src: /src/redis-rs/redis/tests/test_basic.rs:2879,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2859
    functionDepth: 8
    functionLinenumber: 2859
    functionLinenumberEnd: 2899
    functionName: basic::test_digest_command
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - fill_bytes
    - rand::rng
    - calculate_value_digest
    - 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:2904,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2905,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2917,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2920,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2924,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2924,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2925,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2924,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2920,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2935,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2939,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2939,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2940,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2939,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2935,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2948,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2949,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2953,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2953,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2954,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2953,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2962
      start: 2903
    functionDepth: 9
    functionLinenumber: 2903
    functionLinenumberEnd: 2962
    functionName: basic::test_set_value_comparison_digest_equals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - set_options
    - get
    - ValueComparison::ifdeq
    - calculate_value_digest
    - SetOptions::default
    - run_test_if_version_supported
    - connection
    - unwrap
    - Self::value_comparison
    linkageType: ''
    returnType: void
    signature: fn test_set_value_comparison_digest_equals()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:2967,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2968,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2980,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2981,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2985,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2985,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2986,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2985,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2981,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2996,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3000,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:3000,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:3001,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3000,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2996,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:3016,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3018,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3022,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:3022,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:3023,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3022,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3031
      start: 2966
    functionDepth: 9
    functionLinenumber: 2966
    functionLinenumberEnd: 3031
    functionName: basic::test_set_value_comparison_digest_not_equals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - set_options
    - get
    - calculate_value_digest
    - SetOptions::default
    - ValueComparison::ifdne
    - run_test_if_version_supported
    - connection
    - unwrap
    - Self::value_comparison
    linkageType: ''
    returnType: void
    signature: fn test_set_value_comparison_digest_not_equals()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:3035,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3036,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:3042,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:3043,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:3046,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:3047,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:3048,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:3049,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3119
      start: 3034
    functionDepth: 1
    functionLinenumber: 3034
    functionLinenumberEnd: 3119
    functionName: basic::test_del_ex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - ValueComparison::ifdeq
    - calculate_value_digest
    - ValueComparison::ifdne
    - run_test_if_version_supported
    - ValueComparison::ifne
    - connection
    - ValueComparison::ifeq
    linkageType: ''
    returnType: void
    signature: fn test_del_ex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3127,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3127,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3128,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3129,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3129,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3130,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3133,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3133,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3133,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3134,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3135,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3135,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3135,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3136,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3137,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3137,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3137,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3138,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3139,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3139,1
    - Dst: SetExpiry::PXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3139,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3140,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3141,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3141,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3142,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3145,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3145,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3145,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3147,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3148,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3150,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3150,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3150,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3152,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3153,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3155,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3155,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3155,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3159
      start: 3123
    functionDepth: 9
    functionLinenumber: 3123
    functionLinenumberEnd: 3159
    functionName: basic::test_mset_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - MSetOptions::default
    - SetExpiry::EX
    - Self::conditional_set
    - SetExpiry::PX
    - SetExpiry::EXAT
    - Self::with_expiration
    - assert_args
    - SetExpiry::PXAT
    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:3164,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3165,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3178,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3205
      start: 3163
    functionDepth: 9
    functionLinenumber: 3163
    functionLinenumberEnd: 3205
    functionName: basic::test_mset_ex_nx
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - connection
    - MSetOptions::default
    - Self::conditional_set
    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:3210,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3211,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3225,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3225,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3234,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3259
      start: 3209
    functionDepth: 9
    functionLinenumber: 3209
    functionLinenumberEnd: 3259
    functionName: basic::test_mset_ex_xx
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - connection
    - MSetOptions::default
    - Self::conditional_set
    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:3264,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3265,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:3267,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:3267,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3267,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3287,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3288,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3291,1
    - Dst: as_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:3291,1
    - Dst: SetExpiry::PXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3295,1
    - Dst: as_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3295,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3297,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3303,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:3304,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_basic.rs:3304,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3307,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3307,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3324,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3330
      start: 3263
    functionDepth: 9
    functionLinenumber: 3263
    functionLinenumberEnd: 3330
    functionName: basic::test_mset_ex_expiration_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - MSetOptions::default
    - sleep
    - SetExpiry::EX
    - SetExpiry::PX
    - Self::conditional_set
    - Duration::from_millis
    - enumerate
    - SystemTime::now
    - SetExpiry::EXAT
    - iter
    - run_test_if_version_supported
    - as_millis
    - connection
    - Self::with_expiration
    - duration_since
    - unwrap
    - as_secs
    - SetExpiry::PXAT
    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:3334,1
    - Dst: CopyOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3337,1
    - Dst: Self::db
      Src: /src/redis-rs/redis/tests/test_basic.rs:3337,1
    - Dst: i64::replace
      Src: /src/redis-rs/redis/tests/test_basic.rs:3337,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3340
      start: 3333
    functionDepth: 1
    functionLinenumber: 3333
    functionLinenumberEnd: 3340
    functionName: basic::test_copy_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::db
    - assert_args
    - CopyOptions::default
    - i64::replace
    linkageType: ''
    returnType: void
    signature: fn test_copy_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:3344,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3345,1
    - Dst: CopyOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3347,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3348,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3348,1
    - Dst: redis::Connection::copy
      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:3354,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3354,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3359,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3359,1
    - Dst: redis::Connection::copy
      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:3365,1
    - Dst: Self::replace
      Src: /src/redis-rs/redis/tests/test_basic.rs:3365,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3368
      start: 3343
    functionDepth: 1
    functionLinenumber: 3343
    functionLinenumberEnd: 3368
    functionName: basic::test_copy
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - redis::Connection::set
    - Self::replace
    - CopyOptions::default
    - redis::Connection::copy
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_copy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:3372,1
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:3374,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3376,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:3378,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:3378,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3378,1
    - Dst: as_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:3378,1
    - Dst: redis::Connection::set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3382,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3385,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3385,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3385,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3382,1
    - Dst: redis::Connection::expire_time
      Src: /src/redis-rs/redis/tests/test_basic.rs:3388,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3388,1
    - Dst: redis::Connection::set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3394,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3397,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3397,1
    - Dst: SetExpiry::PXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3397,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3394,1
    - Dst: redis::Connection::pexpire_time
      Src: /src/redis-rs/redis/tests/test_basic.rs:3400,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3405
      start: 3371
    functionDepth: 9
    functionLinenumber: 3371
    functionLinenumberEnd: 3405
    functionName: basic::test_expire_time
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - SetExpiry::PXAT
    - redis::Connection::expire_time
    - SystemTime::now
    - SetExpiry::EXAT
    - SetOptions::default
    - redis::Connection::pexpire_time
    - TestContext::connection
    - run_test_if_version_supported
    - redis::Connection::set_options
    - Self::with_expiration
    - duration_since
    - unwrap
    - as_secs
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_expire_time()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:3409,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3410,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3412,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3412,1
    - Dst: redis::Connection::set_read_timeout
      Src: /src/redis-rs/redis/tests/test_basic.rs:3414,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3414,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3414,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3414,1
    - Dst: redis::Connection::blpop
      Src: /src/redis-rs/redis/tests/test_basic.rs:3419,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3424,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3424,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3428,1
    - Dst: Cmd::exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:3428,1
    - Dst: RedisResult::is_ok
      Src: /src/redis-rs/redis/tests/test_basic.rs:3428,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3431,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3431,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3434,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3434,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3436
      start: 3408
    functionDepth: 1
    functionLinenumber: 3408
    functionLinenumberEnd: 3436
    functionName: basic::test_timeout_leaves_usable_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::set_read_timeout
    - sleep
    - Cmd::exec
    - Duration::from_millis
    - RedisResult::unwrap
    - TestContext::connection
    - redis::Connection::get
    - redis::Connection::set
    - RedisResult::is_ok
    - Some
    - redis::Connection::blpop
    - unwrap
    - TestContext::new
    - cmd
    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:3443,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_basic.rs:3443,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3443,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3443,1
    - Dst: std::io::BufReader::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:3445,1
    - Dst: RedisResult::try_clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:3445,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3445,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:3449,1
    - Dst: RedisResult::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3450,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3450,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3450,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3450,1
    - Dst: RedisResult::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3455,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3455,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3455,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3455,1
    - Dst: RedisResult::get_packed_pipeline
      Src: /src/redis-rs/redis/tests/test_basic.rs:3460,1
    - Dst: Vec::len
      Src: /src/redis-rs/redis/tests/test_basic.rs:3460,1
    - Dst: RedisServer::read_exact
      Src: /src/redis-rs/redis/tests/test_basic.rs:3462,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3462,1
    - Dst: RedisResult::write_all
      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: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3467,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3467,1
    - Dst: '&mut Cmd::get_packed_command'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3467,1
    - Dst: Vec::len
      Src: /src/redis-rs/redis/tests/test_basic.rs:3467,1
    - Dst: RedisServer::read_exact
      Src: /src/redis-rs/redis/tests/test_basic.rs:3469,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3469,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3471,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3471,1
    - Dst: '&mut Cmd::get_packed_command'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3471,1
    - Dst: RedisResult::write_all
      Src: /src/redis-rs/redis/tests/test_basic.rs:3473,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3473,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3474,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3474,1
    - Dst: RedisResult::write_all
      Src: /src/redis-rs/redis/tests/test_basic.rs:3475,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3475,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3476,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3476,1
    - Dst: '&mut Cmd::get_packed_command'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3476,1
    - Dst: RedisResult::write_all
      Src: /src/redis-rs/redis/tests/test_basic.rs:3477,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 98
    argCount: 1
    argNames:
    - listener
    argTypes:
    - std::net::TcpListener
    constantsTouched: []
    func_position:
      end: 3483
      start: 3442
    functionDepth: 2
    functionLinenumber: 3442
    functionLinenumberEnd: 3483
    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:
    - RedisResult::write_all
    - RedisResult::cmd
    - RedisResult::get_packed_pipeline
    - RedisResult::try_clone
    - '&mut Cmd::arg'
    - Duration::from_millis
    - arg
    - Vec::len
    - unwrap
    - cmd
    - redis::Cmd::arg
    - sleep
    - std::net::TcpListener::incoming
    - Cmd::arg
    - std::io::BufReader::new
    - RedisServer::read_exact
    - next
    - '&mut Cmd::get_packed_command'
    - 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:3485,1
    - Dst: TcpListener::local_addr
      Src: /src/redis-rs/redis/tests/test_basic.rs:3486,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3486,1
    - Dst: port
      Src: /src/redis-rs/redis/tests/test_basic.rs:3486,1
    - Dst: thread::spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:3487,1
    - Dst: fake_redis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3487,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:3489,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3489,1
    - Dst: get_connection
      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: set_read_timeout
      Src: /src/redis-rs/redis/tests/test_basic.rs:3491,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3491,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3491,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3491,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3494,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3498,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3498,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3500,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3500,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3500,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 137
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3502
      start: 3439
    functionDepth: 9
    functionLinenumber: 3439
    functionLinenumberEnd: 3502
    functionName: basic::test_timeout_in_middle_of_message_leaves_connection_usable
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - sleep
    - thread::spawn
    - set_read_timeout
    - fake_redis
    - Duration::from_millis
    - RedisResult::unwrap
    - get_connection
    - get
    - redis::Client::open
    - Some
    - TcpListener::local_addr
    - get_listener_on_free_port
    - 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:3506,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3507,1
    - Dst: TestContext::get_version
      Src: /src/redis-rs/redis/tests/test_basic.rs:3513,1
    - Dst: redis::Connection::bzpopmin
      Src: /src/redis-rs/redis/tests/test_basic.rs:3525,1
    - Dst: redis::Connection::bzpopmax
      Src: /src/redis-rs/redis/tests/test_basic.rs:3526,1
    - Dst: redis::Connection::bzmpop_min
      Src: /src/redis-rs/redis/tests/test_basic.rs:3538,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/tests/test_basic.rs:3538,1
    - Dst: redis::Connection::bzmpop_max
      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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3544
      start: 3505
    functionDepth: 1
    functionLinenumber: 3505
    functionLinenumberEnd: 3544
    functionName: basic::test_blocking_sorted_set_api
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::bzpopmax
    - TestContext::get_version
    - TestContext::connection
    - as_slice
    - redis::Connection::bzpopmin
    - redis::Connection::bzmpop_min
    - TestContext::new
    - redis::Connection::bzmpop_max
    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:3548,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3549,1
    - Dst: SortedSetAddOptions::add_only
      Src: /src/redis-rs/redis/tests/test_basic.rs:3553,1
    - Dst: SortedSetAddOptions::update_only
      Src: /src/redis-rs/redis/tests/test_basic.rs:3562,1
    - Dst: include_changed_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:3569,1
    - Dst: SortedSetAddOptions::update_only
      Src: /src/redis-rs/redis/tests/test_basic.rs:3579,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3579,1
    - Dst: SortedSetAddOptions::update_only
      Src: /src/redis-rs/redis/tests/test_basic.rs:3588,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3588,1
    - Dst: SortedSetAddOptions::add_or_update
      Src: /src/redis-rs/redis/tests/test_basic.rs:3597,1
    - Dst: include_changed_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:3605,1
    - Dst: SortedSetAddOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3611,1
    - Dst: Self::increment_score
      Src: /src/redis-rs/redis/tests/test_basic.rs:3611,1
    - Dst: Self::include_changed_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:3611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3619
      start: 3547
    functionDepth: 9
    functionLinenumber: 3547
    functionLinenumberEnd: 3619
    functionName: basic::test_sorted_set_add_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - SortedSetAddOptions::update_only
    - SortedSetAddOptions::add_or_update
    - Self::include_changed_count
    - SortedSetAddOptions::default
    - TestContext::connection
    - Self::increment_score
    - include_changed_count
    - Some
    - SortedSetAddOptions::add_only
    - TestContext::new
    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:3624,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3625,1
    - Dst: vemb
      Src: /src/redis-rs/redis/tests/test_basic.rs:3649,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3649,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:3651,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_basic.rs:3651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3703
      start: 3623
    functionDepth: 2
    functionLinenumber: 3623
    functionLinenumberEnd: 3703
    functionName: basic::test_vector_sets_basic_operations
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - enumerate
    - iter
    - vemb
    - run_test_if_version_supported
    - connection
    - unwrap
    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:3708,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3709,1
    - Dst: VAddOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3745,1
    - Dst: Self::set_attributes
      Src: /src/redis-rs/redis/tests/test_basic.rs:3745,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:3745,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3758,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:3759,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3758,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3776,1
    - Dst: VectorSimilaritySearchInput::Fp32
      Src: /src/redis-rs/redis/tests/test_basic.rs:3777,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3776,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3780,1
    - Dst: VectorSimilaritySearchInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:3783,1
    - Dst: EmbeddingInput::Float32
      Src: /src/redis-rs/redis/tests/test_basic.rs:3783,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3780,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3787,1
    - Dst: VectorSimilaritySearchInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:3790,1
    - Dst: EmbeddingInput::Float64
      Src: /src/redis-rs/redis/tests/test_basic.rs:3790,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3787,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3794,1
    - Dst: VectorSimilaritySearchInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:3797,1
    - Dst: EmbeddingInput::String
      Src: /src/redis-rs/redis/tests/test_basic.rs:3797,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3794,1
    - Dst: VSimOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3807,1
    - Dst: Self::set_with_scores
      Src: /src/redis-rs/redis/tests/test_basic.rs:3807,1
    - Dst: Self::set_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:3807,1
    - Dst: vsim_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3811,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:3814,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3811,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_basic.rs:3833,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_basic.rs:3833,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/tests/test_basic.rs:3833,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:3834,1
    - Dst: find_map
      Src: /src/redis-rs/redis/tests/test_basic.rs:3834,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3836,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3845,1
    - Dst: VSimOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3856,1
    - Dst: Self::set_filter_expression
      Src: /src/redis-rs/redis/tests/test_basic.rs:3856,1
    - Dst: vsim_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3857,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:3860,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3857,1
    - Dst: VSimOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3884,1
    - Dst: Self::set_filter_expression
      Src: /src/redis-rs/redis/tests/test_basic.rs:3884,1
    - Dst: vsim_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3885,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:3888,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3885,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3905
      start: 3707
    functionDepth: 9
    functionLinenumber: 3707
    functionLinenumberEnd: 3905
    functionName: basic::test_vector_sets_similarity_search
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - vsim
    - VSimOptions::default
    - clone
    - Some
    - Self::set_attributes
    - Value::BulkString
    - Self::set_with_scores
    - Self::set_filter_expression
    - connection
    - unwrap
    - as_bytes
    - VectorSimilaritySearchInput::Element
    - vsim_options
    - VAddOptions::default
    - iter
    - run_test_if_version_supported
    - VectorSimilaritySearchInput::Values
    - VectorSimilaritySearchInput::Fp32
    - EmbeddingInput::Float32
    - Self::unwrap
    - EmbeddingInput::Float64
    - to_vec
    - EmbeddingInput::String
    - Self::set_count
    - find_map
    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:3910,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3911,1
    - Dst: VAddOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3943,1
    - Dst: Self::set_reduction_dimension
      Src: /src/redis-rs/redis/tests/test_basic.rs:3943,1
    - Dst: Self::set_check_and_set_style
      Src: /src/redis-rs/redis/tests/test_basic.rs:3943,1
    - Dst: Self::set_quantization
      Src: /src/redis-rs/redis/tests/test_basic.rs:3943,1
    - Dst: Self::set_build_exploration_factor
      Src: /src/redis-rs/redis/tests/test_basic.rs:3943,1
    - Dst: Self::set_max_number_of_links
      Src: /src/redis-rs/redis/tests/test_basic.rs:3943,1
    - Dst: Self::set_attributes
      Src: /src/redis-rs/redis/tests/test_basic.rs:3952,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:3952,1
    - Dst: vemb
      Src: /src/redis-rs/redis/tests/test_basic.rs:3960,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3960,1
    - Dst: vemb_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3964,1
    - Dst: VEmbOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3968,1
    - Dst: Self::set_raw_representation
      Src: /src/redis-rs/redis/tests/test_basic.rs:3968,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3964,1
    - Dst: vinfo
      Src: /src/redis-rs/redis/tests/test_basic.rs:3984,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3984,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3984,1
    - Dst: vlinks
      Src: /src/redis-rs/redis/tests/test_basic.rs:4013,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4013,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4021,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_basic.rs:4021,1
    - Dst: vlinks_with_scores
      Src: /src/redis-rs/redis/tests/test_basic.rs:4032,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4032,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4047,1
    - Dst: zip
      Src: /src/redis-rs/redis/tests/test_basic.rs:4047,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4049,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_basic.rs:4047,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4097,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:4097,1
    - Dst: '&''static str::to_string'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4099,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:4097,1
    - Dst: vrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:4102,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4102,1
    - Dst: vrandmember_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:4106,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_basic.rs:4107,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4106,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4111,1
    - Dst: all
      Src: /src/redis-rs/redis/tests/test_basic.rs:4111,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_basic.rs:4111,1
    - Dst: vrandmember_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:4115,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_basic.rs:4116,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4115,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4119,1
    - Dst: all
      Src: /src/redis-rs/redis/tests/test_basic.rs:4119,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_basic.rs:4119,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 164
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4137
      start: 3909
    functionDepth: 9
    functionLinenumber: 3909
    functionLinenumberEnd: 4137
    functionName: basic::test_vector_sets_auxiliary_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - vlinks_with_scores
    - len
    - contains
    - vemb_options
    - vinfo
    - clone
    - VEmbOptions::default
    - all
    - vrandmember_multiple
    - Self::set_attributes
    - collect
    - '&''static str::to_string'
    - Self::set_build_exploration_factor
    - vlinks
    - connection
    - Self::set_max_number_of_links
    - unwrap
    - map
    - Self::set_quantization
    - enumerate
    - Self::set_check_and_set_style
    - VAddOptions::default
    - run_test_if_version_supported
    - iter
    - zip
    - Self::set_reduction_dimension
    - Self::set_raw_representation
    - vemb
    - vrandmember
    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:4142,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4143,1
    - Dst: vdim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4152,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4154,1
    - Dst: vadd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4186,1
    - Dst: VectorAddInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:4188,1
    - Dst: EmbeddingInput::Float32
      Src: /src/redis-rs/redis/tests/test_basic.rs:4188,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4195,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4238,1
    - Dst: VectorSimilaritySearchInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:4241,1
    - Dst: EmbeddingInput::Float64
      Src: /src/redis-rs/redis/tests/test_basic.rs:4241,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4238,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4246,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:4249,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4246,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4255,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:4257,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4265
      start: 4141
    functionDepth: 1
    functionLinenumber: 4141
    functionLinenumberEnd: 4265
    functionName: basic::test_vector_sets_edge_cases
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - vsim
    - unwrap
    - VectorSimilaritySearchInput::Element
    - vadd
    - VectorAddInput::Values
    - EmbeddingInput::Float64
    - run_test_if_version_supported
    - connection
    - vdim
    - EmbeddingInput::Float32
    - VectorSimilaritySearchInput::Values
    - 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:4269,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:4270,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_basic.rs:4270,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4271,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4271,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4273,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4273,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4275,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4275,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:4276,1
    - Dst: set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:4277,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4278,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4278,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4278,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:4278,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4278,1
    - Dst: build_simple_pipeline_for_invalidation
      Src: /src/redis-rs/redis/tests/test_basic.rs:4283,1
    - Dst: Pipeline::query
      Src: /src/redis-rs/redis/tests/test_basic.rs:4285,1
    - Dst: get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:4286,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4286,1
    - Dst: try_recv
      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: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:4298,1
    - Dst: set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:4299,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:4299,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_basic.rs:4300,1
    - Dst: Pipeline::query
      Src: /src/redis-rs/redis/tests/test_basic.rs:4301,1
    - Dst: get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:4302,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4302,1
    - Dst: try_recv
      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: drop
      Src: /src/redis-rs/redis/tests/test_basic.rs:4315,1
    - Dst: Pipeline::query
      Src: /src/redis-rs/redis/tests/test_basic.rs:4317,1
    - Dst: get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:4318,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4322
      start: 4268
    functionDepth: 9
    functionLinenumber: 4268
    functionLinenumberEnd: 4322
    functionName: basic::test_push_manager
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::set_protocol
    - connection_info
    - clone
    - get_int
    - '&mut Cmd::arg'
    - set_redis_settings
    - RedisConnectionInfo::default
    - get_connection
    - unwrap
    - cmd
    - set_push_sender
    - build_simple_pipeline_for_invalidation
    - RedisResult::unwrap
    - redis::Client::open
    - Cmd::arg
    - try_recv
    - std::sync::mpsc::channel
    - Pipeline::query
    - exec
    - drop
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_push_manager()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4326,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:4327,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_basic.rs:4327,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4328,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4328,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4329,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4329,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4331,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4331,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:4332,1
    - Dst: set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:4333,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:4333,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:4335,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4335,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_basic.rs:4340,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:4341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4344
      start: 4325
    functionDepth: 9
    functionLinenumber: 4325
    functionLinenumberEnd: 4344
    functionName: basic::test_push_manager_disconnection
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - set_redis_settings
    - Self::set_protocol
    - std::sync::mpsc::channel
    - set_push_sender
    - RedisConnectionInfo::default
    - RedisResult::unwrap
    - get_connection
    - drop
    - set
    - connection_info
    - redis::Client::open
    - clone
    - unwrap
    - TestContext::new
    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:4349,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4350,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4353,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:4355,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4356,1
    - Dst: redis::Connection::set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:4357,1
    - Dst: redis::Connection::subscribe_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4359,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4359,1
    - Dst: redis::Connection::psubscribe_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::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4363,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4363,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4363,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:4363,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4363,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4372,1
    - Dst: redis::Cmd::exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:4372,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4372,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4377,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4377,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_basic.rs:4378,1
    - Dst: redis::Connection::unsubscribe_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4416,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4416,1
    - Dst: redis::Connection::punsubscribe_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::ping
      Src: /src/redis-rs/redis/tests/test_basic.rs:4418,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4418,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4424,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4424,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4432,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4432,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4442,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4443
      start: 4347
    functionDepth: 2
    functionLinenumber: 4347
    functionLinenumberEnd: 4443
    functionName: basic::test_raw_pubsub_with_push_manager
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::unsubscribe_resp3
    - redis::Connection::set_push_sender
    - '&mut Cmd::arg'
    - redis::Connection::punsubscribe_resp3
    - unwrap
    - unwrap_err
    - redis::Cmd::arg
    - redis::Cmd::exec
    - redis::Connection::subscribe_resp3
    - RedisResult::unwrap
    - try_recv
    - push
    - std::sync::mpsc::channel
    - redis::Connection::ping
    - exec
    - TestContext::connection
    - supports_resp3
    - redis::cmd
    - redis::Connection::psubscribe_resp3
    - TestContext::new
    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:4447,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4448,1
    - Dst: RedisConnectionInfo::set_db
      Src: /src/redis-rs/redis/tests/test_basic.rs:4448,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4449,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4449,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4451,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4451,1
    - Dst: get_connection
      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: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4453,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4453,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4453,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4458
      start: 4446
    functionDepth: 10
    functionLinenumber: 4446
    functionLinenumberEnd: 4458
    functionName: basic::test_select_db
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - set_redis_settings
    - redis::Cmd::arg
    - RedisResult::unwrap
    - get_connection
    - redis_settings
    - connection_info
    - redis::Client::open
    - redis::cmd
    - '&mut Cmd::query'
    - unwrap
    - TestContext::new
    - RedisConnectionInfo::set_db
    linkageType: ''
    returnType: void
    signature: fn test_select_db()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4462,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4463,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4464,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4464,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4464,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:4464,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4464,1
    - Dst: redis::Connection::client_getname
      Src: /src/redis-rs/redis/tests/test_basic.rs:4469,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4469,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4471
      start: 4461
    functionDepth: 2
    functionLinenumber: 4461
    functionLinenumberEnd: 4471
    functionName: basic::test_client_getname
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::client_getname
    - redis::Cmd::arg
    - exec
    - RedisResult::unwrap
    - TestContext::connection
    - redis::cmd
    - unwrap
    - TestContext::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_client_getname()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4475,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4476,1
    - Dst: redis::Connection::client_id
      Src: /src/redis-rs/redis/tests/test_basic.rs:4477,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4478
      start: 4474
    functionDepth: 1
    functionLinenumber: 4474
    functionLinenumberEnd: 4478
    functionName: basic::test_client_id
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - redis::Connection::client_id
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_client_id()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4482,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4483,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4485,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4485,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4485,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4487
      start: 4481
    functionDepth: 3
    functionLinenumber: 4481
    functionLinenumberEnd: 4487
    functionName: basic::test_client_setname
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - TestContext::connection
    - redis::cmd
    - '&mut Cmd::query'
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_client_setname()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4491,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4492,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4493,1
    - Dst: query::<Role>
      Src: /src/redis-rs/redis/tests/test_basic.rs:4493,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4495
      start: 4490
    functionDepth: 2
    functionLinenumber: 4490
    functionLinenumberEnd: 4495
    functionName: basic::test_role_primary
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - query::<Role>
    - redis::cmd
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_role_primary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4499,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4500,1
    - Dst: thread::spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:4502,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4503,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4503,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4503,1
    - Dst: "arg(\"SLEEP\")\n                .arg(\"0.1\")\n                .query::<()>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:4503,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4503,1
    - Dst: thread::sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:4511,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:4511,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4513,1
    - Dst: RedisConnectionInfo::set_db
      Src: /src/redis-rs/redis/tests/test_basic.rs:4513,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4514,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4514,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4516,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4516,1
    - Dst: get_connection_with_timeout
      Src: /src/redis-rs/redis/tests/test_basic.rs:4517,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:4517,1
    - Dst: join
      Src: /src/redis-rs/redis/tests/test_basic.rs:4521,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4522
      start: 4498
    functionDepth: 9
    functionLinenumber: 4498
    functionLinenumberEnd: 4522
    functionName: basic::test_connection_timeout_on_busy_server
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - "arg(\"SLEEP\")\n                .arg(\"0.1\")\n                .query::<()>"
    - set_redis_settings
    - get_connection_with_timeout
    - thread::spawn
    - Duration::from_millis
    - join
    - Client::open
    - RedisResult::unwrap
    - thread::sleep
    - TestContext::connection
    - redis_settings
    - connection_info
    - Cmd::arg
    - unwrap
    - TestContext::new
    - cmd
    - RedisConnectionInfo::set_db
    - '&mut Cmd::arg'
    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:4526,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4527,1
    - Dst: redis::Pipeline::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4529,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:4529,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4529,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4535,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:4535,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4540
      start: 4525
    functionDepth: 10
    functionLinenumber: 4525
    functionLinenumberEnd: 4540
    functionName: basic::fail_on_empty_command
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - query::<String>
    - redis::Pipeline::new
    - TestContext::connection
    - redis::Cmd::new
    - TestContext::new
    - unwrap_err
    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:35,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: cluster_async::broken_pipe_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - std::io::Error::new
    - RedisError::from
    linkageType: ''
    returnType: RedisError
    signature: fn broken_pipe_error() -> RedisError
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:42,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:42,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:42,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:42,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:42,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:48,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:48,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:48,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:48,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - connection
    argTypes:
    - impl redis::aio::ConnectionLike
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: cluster_async::smoke_test_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Self::query_async
    - '&mut Cmd::clone'
    - exec_async
    - expect
    - Cmd::arg
    - cmd
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: 'async fn smoke_test_connection(mut connection: impl redis::aio::ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:59,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:61,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:62,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: cluster_async::async_cluster_basic_cmd
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - smoke_test_connection
    - Ok::<_, RedisError>
    - Result::async_connection
    - TestClusterContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_basic_cmd() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:68,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:70,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:71,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:71,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:71,1
    - Dst: set_no_response
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:71,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:71,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:79,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:79,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:79,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:79,1
    - Dst: set_no_response
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:79,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:79,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:87,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:87,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:87,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 93
    functionName: cluster_async::no_response_skips_response_even_on_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - TestClusterContext::new
    - '&mut Cmd::query_async'
    - '&mut Cmd::exec_async'
    - Ok
    - set_no_response
    - arg
    - redis::cmd
    - Result::async_connection
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: async fn no_response_skips_response_even_on_error() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:97,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:99,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:100,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:100,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:100,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:100,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:100,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:100,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: cluster_async::async_cluster_basic_eval
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new
    - arg
    - query_async
    - Result::async_connection
    - Cmd::arg
    - Ok::<_, RedisError>
    - cmd
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_basic_eval() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:113,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:115,1
    - Dst: Script::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:116,1
    - Dst: Script::key
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:116,1
    - Dst: ScriptInvocation::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:116,1
    - Dst: '&''b mut ScriptInvocation::invoke_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:116,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: cluster_async::async_cluster_basic_script
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ScriptInvocation::arg
    - '&''b mut ScriptInvocation::invoke_async'
    - Result::async_connection
    - Script::new
    - Ok::<_, RedisError>
    - Script::key
    - TestClusterContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_basic_script() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:129,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:131,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:132,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:132,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:133,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:133,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:135,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:135,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:137,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:137,1
    - Dst: redis::cluster_routing::Route::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:140,1
    - Dst: redis::cluster_routing::SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:141,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:142,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:150,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:150,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:152,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:152,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:154,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 128
    functionDepth: 9
    functionLinenumber: 128
    functionLinenumberEnd: 155
    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
    - bool::set
    - redis::cluster_routing::SingleNodeRoutingInfo::SpecificNode
    - RoutingInfo::SingleNode
    - Result::async_connection
    - unwrap
    - Ok::<_, RedisError>
    - redis::cluster_routing::Route::new
    - TestClusterContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_route_flush_to_specific_node() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:159,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:161,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:162,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:165,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:166,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:168,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:169,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:166,1
    - Dst: from_redis_value::<HashMap<String, String>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:174,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:174,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:176,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:176,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:176,1
    - Dst: RedisResult::split
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:177,1
    - Dst: RedisResult::next
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:178,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:178,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:178,1
    - Dst: RedisResult::next
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:179,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:179,1
    - Dst: parse
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:179,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:179,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:181,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:183,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:184,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:181,1
    - Dst: from_redis_value::<String>
      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: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 158
    functionDepth: 6
    functionLinenumber: 158
    functionLinenumberEnd: 192
    functionName: cluster_async::async_cluster_route_flush_to_node_by_address
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - to_string
    - into_iter
    - RedisResult::split
    - from_redis_value::<String>
    - parse
    - unwrap
    - Ok::<_, RedisError>
    - bool::route_command
    - TestClusterContext::new
    - RedisResult::next
    - RoutingInfo::MultiNode
    - Result::async_connection
    - Cmd::arg
    - Cmd::clone
    - Option::unwrap
    - RoutingInfo::SingleNode
    - next
    - redis::cmd
    - from_redis_value::<HashMap<String, String>>
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_route_flush_to_node_by_address() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:196,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:199,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:204,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:204,1
    - Dst: redis::from_redis_value_ref::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:208,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:208,1
    - Dst: redis::from_redis_value_ref::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:209,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:209,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:204,1
    - Dst: sort_by
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:213,1
    - Dst: cmp
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:213,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:214,1
    - Dst: std::iter::Chain::unzip
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:214,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:220,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:220,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:224,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:220,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:226,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:226,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:226,1
    - Dst: ClusterClientBuilder::build
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:226,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:229,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:232,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:233,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:234,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:233,1
    - Dst: split_to_addresses_and_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:237,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:239,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:239,1
    - Dst: redis::ConnectionInfo::addr
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:241,1
    - Dst: '&ConnectionAddr::to_string'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:241,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:239,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:243,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:249,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:249,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:254,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:255,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:256,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:255,1
    - Dst: split_to_addresses_and_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:259,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:265,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:265,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:270,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 195
    functionDepth: 9
    functionLinenumber: 195
    functionLinenumberEnd: 271
    functionName: cluster_async::async_cluster_route_info_to_nodes
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - clone
    - split_to_addresses_and_info
    - Default::default
    - collect
    - unwrap
    - Ok::<_, RedisError>
    - bool::route_command
    - map
    - sort_by
    - RedisServer::connection_info
    - get_async_connection
    - ClusterClientBuilder::read_from_replicas
    - '&ConnectionAddr::to_string'
    - split
    - redis::ConnectionInfo::addr
    - ClusterClient::builder
    - iter
    - Self::into_iter
    - RoutingInfo::MultiNode
    - redis::from_redis_value_ref::<String>
    - ClusterClientBuilder::build
    - cmp
    - std::iter::Chain::map
    - TestClusterContext::new_with_config
    - std::iter::Chain::unzip
    - sort
    - redis::cmd
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_route_info_to_nodes() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:275,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:275,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:276,1
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:279,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:281,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:283,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:283,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:284,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:284,1
    - Dst: bool::hgetall
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:285,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:285,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 274
    functionDepth: 9
    functionLinenumber: 274
    functionLinenumberEnd: 302
    functionName: cluster_async::cluster_resp3
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - ProtocolVersion::supports_resp3
    - Ok
    - bool::hgetall
    - Result::async_connection
    - bool::hset
    - use_protocol
    - TestClusterContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn cluster_resp3() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:306,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:308,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:309,1
    - Dst: Pipeline::add_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:310,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:310,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:310,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:310,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:310,1
    - Dst: Pipeline::add_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:311,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:311,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:311,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:311,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:311,1
    - Dst: Pipeline::exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:312,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:313,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:315,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:317,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 318
    functionName: cluster_async::async_cluster_basic_pipe
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Pipeline::exec_async
    - bool::get
    - Pipeline::add_command
    - Result::async_connection
    - Cmd::arg
    - clone
    - Ok::<_, RedisError>
    - '&mut Cmd::arg'
    - cmd
    - redis::pipe
    - TestClusterContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_basic_pipe() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:328,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:329,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:331,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:331,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:331,1
    - Dst: get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:331,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:336,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:336,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:336,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:336,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:337,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:337,1
    - Dst: '&mut Cmd::get_packed_command'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:337,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:338,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:338,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:347,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:348,1
    - Dst: redis::Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:348,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:348,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:348,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 355
    functionName: cluster_async::test_pipeline_returns_server_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - MockEnv::new
    - ignore
    - get
    - tokio::runtime::Runtime::block_on
    - RedisResult::unwrap
    - get_packed_command
    - Ok
    - redis::Pipeline::set
    - exec_async
    - parse_redis_value
    - '&mut Cmd::get_packed_command'
    - redis::cmd
    - respond_startup
    - Err
    - redis::pipe
    - '&mut Cmd::arg'
    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:359,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:361,1
    - Dst: bool::mset
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:363,1
    - Dst: bool::mget
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:367,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 371
    functionName: cluster_async::async_cluster_multi_shard_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - bool::mget
    - TestClusterContext::new
    - Result::async_connection
    - Ok::<_, RedisError>
    - bool::mset
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_multi_shard_commands() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:375,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:377,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:379,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:379,1
    - Dst: '&mut Pipeline::set'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:379,1
    - Dst: expire
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:379,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:379,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 374
    functionDepth: 9
    functionLinenumber: 374
    functionLinenumberEnd: 389
    functionName: cluster_async::async_cluster_can_run_a_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new
    - redis::Pipeline::atomic
    - expire
    - query_async
    - Result::async_connection
    - Ok::<_, RedisError>
    - redis::pipe
    - '&mut Pipeline::set'
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_can_run_a_transaction() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:396,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:398,1
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:401,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:404,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 393
    functionDepth: 10
    functionLinenumber: 393
    functionLinenumberEnd: 409
    functionName: cluster_async::async_cluster_default_reject_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - ClusterType::get_intended
    - TestClusterContext::new_with_config
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_default_reject_invalid_hostnames() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:416,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:418,1
    - Dst: TestClusterContext::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:421,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:425,1
    - Dst: danger_accept_invalid_hostnames
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:427,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:430,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:431,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 413
    functionDepth: 10
    functionLinenumber: 413
    functionLinenumberEnd: 433
    functionName: cluster_async::async_cluster_danger_accept_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - danger_accept_invalid_hostnames
    - Default::default
    - TestClusterContext::new_with_config_and_builder
    - Ok
    - smoke_test_connection
    - ClusterType::get_intended
    - Result::async_connection
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_danger_accept_invalid_hostnames() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_failover
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:437,1
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:438,1
    - Dst: RedisClusterConfiguration::single_replica_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:439,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 436
    functionDepth: 10
    functionLinenumber: 436
    functionLinenumberEnd: 447
    functionName: cluster_async::async_cluster_basic_failover
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - RedisClusterConfiguration::single_replica_config
    - TestClusterContext::new_with_config
    - test_failover
    - Ok::<_, RedisError>
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_basic_failover() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:452,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:452,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:452,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - redis
    argTypes:
    - '&mut redis::aio::MultiplexedConnection'
    constantsTouched: []
    func_position:
      end: 454
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 454
    functionName: cluster_async::do_failover
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Ok
    - '&mut Cmd::exec_async'
    - cmd
    - 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:463,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:463,1
    - Dst: '&TestClusterContext::async_connection'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:465,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:466,1
    - Dst: RedisServer::clear
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:469,1
    - Dst: iter_servers
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:471,1
    - Dst: RedisServer::client_addr
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:472,1
    - Dst: build_single_client
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:474,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:475,1
    - Dst: RedisResult::unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:474,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:481,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:481,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:486,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:486,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:486,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:486,1
    - Dst: redis::ConnectionInfo::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:491,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:491,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:494,1
    - Dst: flushall::<()>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:494,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:494,1
    - Dst: futures_time::time::Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:495,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:494,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:497,1
    - Dst: anyhow::Error::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:497,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:500,1
    - Dst: Ok::<(), anyhow::Error>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:502,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:514,1
    - Dst: bool::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:516,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:517,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:518,1
    - Dst: future::join_all
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:522,1
    - Dst: Self::iter_mut
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:523,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:523,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:525,1
    - Dst: do_failover
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:525,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:528,1
    - Dst: all
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:528,1
    - Dst: is_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:528,1
    - Dst: RedisResult::pop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:529,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:529,1
    - Dst: Ok::<_, anyhow::Error>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:531,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:535,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:535,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:535,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:535,1
    - Dst: Self::exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:535,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:541,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:541,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:541,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:541,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:547,1
    - Dst: Ok::<_, anyhow::Error>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:548,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                    \
        \    let res: i32 = cmd(\"GET\")\n                            .arg(key)\n\
        \                            .clone()\n                            .query_async(&mut\
        \ connection)\n                            .await?;\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:514,1
    - Dst: try_collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:514,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:514,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 154
    argCount: 4
    argNames:
    - env
    - requests
    - value
    - _mtls_enabled
    argTypes:
    - '&TestClusterContext'
    - i32
    - i32
    - bool
    constantsTouched: []
    func_position:
      end: 562
      start: 457
    functionDepth: 8
    functionLinenumber: 457
    functionLinenumberEnd: 562
    functionName: cluster_async::test_failover
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - Arc::new
    - redis::ConnectionInfo::get
    - Ok::<_, anyhow::Error>
    - '&mut Cmd::clone'
    - Ok
    - try_collect
    - clone
    - Self::arg
    - Self::exec_async
    - '&mut Cmd::arg'
    - all
    - ".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                        let res: i32 = cmd(\"GET\")\n\
      \                            .arg(key)\n                            .clone()\n\
      \                            .query_async(&mut connection)\n               \
      \             .await?;\n                        assert_eq!(res, i);\n      \
      \                  completed.fetch_add(1, Ordering::SeqCst);\n             \
      \           Ok::<_, anyhow::Error>(())\n                    }\n            \
      \    }\n            })\n            .collect::<stream::FuturesUnordered<_>>"
    - Box::pin
    - futures_time::time::Duration::from_secs
    - query_async
    - unwrap
    - cmd
    - RedisServer::clear
    - map
    - '&TestClusterContext::async_connection'
    - RedisServer::connection_info
    - RedisResult::iter
    - get_multiplexed_async_connection
    - is_err
    - RedisResult::expect
    - timeout
    - expect
    - flushall::<()>
    - redis::Cmd::new
    - do_failover
    - Cmd::arg
    - Err
    - RedisServer::push
    - RedisResult::unwrap_or_else
    - RedisServer::client_addr
    - build_single_client
    - Self::fetch_add
    - Self::query_async
    - unwrap_or_else
    - Self::clone
    - Self::iter_mut
    - anyhow::Error::from
    - RedisResult::pop
    - AtomicI32::new
    - future::join_all
    - bool::clone
    - Ok::<(), anyhow::Error>
    - iter_servers
    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:616,1
    - Dst: async_generic_connection::<ErrorConnection>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:618,1
    - Dst: store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:620,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:621,1
    - Dst: store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:624,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:626,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 636
      start: 615
    functionDepth: 3
    functionLinenumber: 615
    functionLinenumberEnd: 636
    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
    - Ok::<_, RedisError>
    - store
    - async_generic_connection::<ErrorConnection>
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_error_in_inner_connection() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:647,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:648,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:649,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:649,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:649,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:649,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:650,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:650,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:651,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:651,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:651,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:657,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:657,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:661,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:661,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:661,1
    - Dst: arg("test").query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 664
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 664
    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:
    - MockEnv::new
    - '&str::into'
    - tokio::runtime::Runtime::block_on
    - contains_slice
    - Value::SimpleString
    - Ok
    - Value::Array
    - arg("test").query_async::<Value>
    - Cmd::arg
    - Err
    - cmd
    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:675,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:676,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:677,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:677,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:677,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:677,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:678,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:678,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:679,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:679,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:679,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:698,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:698,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:702,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:702,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:702,1
    - Dst: arg("test").query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:702,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 705
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 705
    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:
    - MockEnv::new
    - '&str::into'
    - tokio::runtime::Runtime::block_on
    - contains_slice
    - Value::SimpleString
    - Ok
    - Value::Array
    - arg("test").query_async::<Value>
    - Cmd::arg
    - Err
    - cmd
    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:711,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:717,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:718,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:718,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:721,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:723,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:724,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:724,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:725,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:725,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:725,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:725,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:730,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:731,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:731,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 737
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 737
    functionName: cluster_async::test_async_cluster_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&str::to_vec'
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - tokio::runtime::Runtime::block_on
    - atomic::AtomicUsize::new
    - Value::BulkString
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - parse_redis_value
    - ClusterClientBuilder::retries
    - fetch_add
    - respond_startup
    - Cmd::arg
    - Err
    - cmd
    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:743,1
    - Dst: atomic::AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:743,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:750,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:751,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:751,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:754,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:756,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:757,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:758,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:758,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:763,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:764,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:764,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 774
      start: 740
    functionDepth: 8
    functionLinenumber: 740
    functionLinenumberEnd: 774
    functionName: cluster_async::test_async_cluster_tryagain_exhaust_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - tokio::runtime::Runtime::block_on
    - atomic::AtomicUsize::new
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - parse_redis_value
    - ClusterClientBuilder::retries
    - fetch_add
    - respond_startup
    - clone
    - Cmd::arg
    - Err
    - cmd
    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:780,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:781,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:782,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:789,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:790,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:791,1
    - Dst: RedisServer::store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:793,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:795,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:796,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:796,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:796,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:796,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:799,1
    - Dst: contains_slice
      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: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:802,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:802,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:802,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:805,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:805,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:806,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:809,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:809,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:812,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:812,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:812,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:839,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:840,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:840,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:840,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 846
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 846
    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:
    - '&str::to_vec'
    - atomic::AtomicUsize::new
    - Ok
    - Value::Array
    - parse_redis_value
    - fetch_add
    - '&str::into'
    - Value::BulkString
    - cmd
    - MockEnv::new
    - as_bytes
    - atomic::AtomicBool::new
    - contains_slice
    - Value::SimpleString
    - Cmd::arg
    - Err
    - RedisServer::load
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - tokio::runtime::Runtime::block_on
    - respond_startup
    - RedisServer::store
    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:852,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:859,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:860,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:860,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:863,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:864,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:867,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:868,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:868,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:868,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:868,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:871,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:871,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:872,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:872,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:872,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:892,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:893,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:893,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:893,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:893,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:900,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:900,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:901,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:911,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:911,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:911,1
    - Dst: arg("test").query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:911,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:923,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:924,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:924,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:924,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 930
      start: 849
    functionDepth: 2
    functionLinenumber: 849
    functionLinenumberEnd: 930
    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:
    - '&str::to_vec'
    - MockEnv::with_client_builder
    - Ok
    - Value::Array
    - parse_redis_value
    - '&str::into'
    - Value::BulkString
    - cmd
    - as_bytes
    - atomic::AtomicBool::new
    - contains_slice
    - Value::SimpleString
    - ClusterClient::builder
    - Cmd::arg
    - Err
    - RedisServer::load
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - tokio::runtime::Runtime::block_on
    - arg("test").query_async::<Value>
    - ClusterClientBuilder::retries
    - respond_startup
    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:936,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:937,1
    - Dst: atomic::AtomicU16::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:937,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:938,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:945,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:946,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:946,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:949,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:952,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:953,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:957,1
    - Dst: RedisServer::swap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:959,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:960,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:960,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:960,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:962,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:962,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:962,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:962,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:974,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:974,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:975,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:976,1
    - Dst: '&''static str::to_string'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:977,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:988,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:988,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:989,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:990,1
    - Dst: '&''static str::to_string'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:991,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 999
      start: 933
    functionDepth: 8
    functionLinenumber: 933
    functionLinenumberEnd: 999
    functionName: cluster_async::test_async_cluster_reconnect_even_with_zero_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - '&str::to_vec'
    - MockEnv::with_client_builder
    - Ok
    - atomic::AtomicU16::new
    - RedisServer::clone
    - broken_pipe_error
    - Value::BulkString
    - '&''static str::to_string'
    - bool::route_command
    - cmd
    - atomic::AtomicBool::new
    - contains_slice
    - ClusterClient::builder
    - RedisServer::fetch_add
    - Err
    - RedisServer::swap
    - RoutingInfo::SingleNode
    - tokio::runtime::Runtime::block_on
    - ClusterClientBuilder::retries
    - respond_startup
    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:1004,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1004,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1010,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1011,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1015,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1018,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1021,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1021,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1029,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1029,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1033,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1033,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1033,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1033,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1043,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1044,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1044,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1044,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1002
    functionDepth: 8
    functionLinenumber: 1002
    functionLinenumberEnd: 1050
    functionName: cluster_async::test_async_cluster_ask_redirect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - '&str::to_vec'
    - tokio::runtime::Runtime::block_on
    - Value::BulkString
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - AtomicI32::new
    - RedisServer::fetch_add
    - parse_redis_value
    - Cmd::arg
    - respond_startup_two_nodes
    - Err
    - cmd
    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:1055,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1055,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1056,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1062,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1063,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1068,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1069,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1069,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1074,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1075,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1077,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1078,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1078,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1084,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1085,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1085,1
    - Dst: arg("test").query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1085,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1084,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1053
    functionDepth: 8
    functionLinenumber: 1053
    functionLinenumberEnd: 1090
    functionName: cluster_async::test_async_cluster_ask_save_new_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - Self::fetch_add
    - Arc::new
    - tokio::runtime::Runtime::block_on
    - contains_slice
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - AtomicI32::new
    - parse_redis_value
    - arg("test").query_async::<Value>
    - Cmd::arg
    - respond_startup_two_nodes
    - Err
    - cmd
    - RedisServer::clone
    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:1095,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1095,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1101,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1103,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1103,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1103,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1105,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1106,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1109,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1109,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1110,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1115,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1115,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1115,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1115,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1121,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1122,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1122,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1093
    functionDepth: 8
    functionLinenumber: 1093
    functionLinenumberEnd: 1128
    functionName: cluster_async::test_async_cluster_reset_routing_if_redirect_fails
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - broken_pipe_error
    - MockEnv::new
    - as_bytes
    - Arc::new
    - '&str::to_vec'
    - tokio::runtime::Runtime::block_on
    - Value::BulkString
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - Ok
    - AtomicI32::new
    - RedisServer::fetch_add
    - parse_redis_value
    - Cmd::arg
    - respond_startup_two_nodes
    - Err
    - cmd
    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:1133,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1133,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1139,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1140,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1144,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1147,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1149,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1149,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: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1163,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1163,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1173,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1174,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1131
    functionDepth: 8
    functionLinenumber: 1131
    functionLinenumberEnd: 1179
    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:
    - query_async::<Value>
    - Arc::new
    - tokio::runtime::Runtime::block_on
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - AtomicI32::new
    - RedisServer::fetch_add
    - parse_redis_value
    - respond_startup_two_nodes
    - Err
    - cmd
    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:1185,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1186,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1193,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1194,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1195,1
    - Dst: RedisServer::store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1197,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1199,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1200,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1200,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1200,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1200,1
    - Dst: fetch_add
      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: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1207,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1208,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1213,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1213,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1218,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1218,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1218,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1218,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1226,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1227,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1227,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1182
    functionDepth: 2
    functionLinenumber: 1182
    functionLinenumberEnd: 1233
    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:
    - '&str::to_vec'
    - atomic::AtomicUsize::new
    - Ok
    - parse_redis_value
    - fetch_add
    - '&str::into'
    - Value::BulkString
    - cmd
    - MockEnv::new
    - as_bytes
    - atomic::AtomicBool::new
    - contains_slice
    - Value::SimpleString
    - Cmd::arg
    - Err
    - RedisServer::load
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - tokio::runtime::Runtime::block_on
    - respond_startup
    - RedisServer::store
    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:1245,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1246,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1246,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1246,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1251,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1253,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1253,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1253,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1253,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1259,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1260,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1260,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1260,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1272,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1273,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1273,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1273,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1278,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1280,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1280,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1280,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1280,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1286,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1287,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1287,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1287,1
    - Dst: "arg(\"test\")\n                .arg(\"123\")\n                .query_async::<Option<Value>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1236
    functionDepth: 1
    functionLinenumber: 1236
    functionLinenumberEnd: 1293
    functionName: cluster_async::test_async_cluster_replica_read
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica
    - '&str::to_vec'
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - tokio::runtime::Runtime::block_on
    - Value::BulkString
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - Value::SimpleString
    - "arg(\"test\")\n                .arg(\"123\")\n                .query_async::<Option<Value>>"
    - ClusterClientBuilder::retries
    - Cmd::arg
    - Err
    - cmd
    - '&mut Cmd::arg'
    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:1301,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1301,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1301,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1302,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1303,1
    - Dst: RedisFuture::split_whitespace
      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:1305,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1307,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1314,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1315,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1315,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1315,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1320,1
    - Dst: Option<Vec<MockSlotRange>>::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1323,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1326,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1326,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1326,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1327,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1327,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1327,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1327,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1329,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1333,1
    - Dst: query_async::<Option<()>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1333,1
    - Dst: RedisServer::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1334,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1334,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1334,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: 1337
      start: 1295
    functionDepth: 8
    functionLinenumber: 1295
    functionLinenumberEnd: 1337
    functionName: cluster_async::test_async_cluster_fan_out
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - RedisFuture::split_whitespace
    - Vec::new
    - Arc::new
    - query_async::<Option<()>>
    - MockEnv::with_client_builder
    - Ok
    - RedisServer::clone
    - '&str::into'
    - std::sync::Mutex::new
    - Cmd::get_packed_command
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - Value::SimpleString
    - ClusterClient::builder
    - Self::lock
    - Cmd::arg
    - push
    - Err
    - RedisServer::lock
    - Cmd::new
    - tokio::runtime::Runtime::block_on
    - Self::unwrap
    - sort
    - ClusterClientBuilder::retries
    - Option<Vec<MockSlotRange>>::clone
    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:1341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1340
    functionDepth: 9
    functionLinenumber: 1340
    functionLinenumberEnd: 1347
    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:1351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1350
    functionDepth: 9
    functionLinenumber: 1350
    functionLinenumberEnd: 1357
    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:1361,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1360
    functionDepth: 9
    functionLinenumber: 1360
    functionLinenumberEnd: 1378
    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:
    - test_async_cluster_fan_out
    - Some
    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:1382,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1381
    functionDepth: 9
    functionLinenumber: 1381
    functionLinenumberEnd: 1409
    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:
    - test_async_cluster_fan_out
    - Some
    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:1415,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1415,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1415,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1416,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1424,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1425,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1425,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1425,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1430,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1431,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1431,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1431,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1432,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1432,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1436,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1437,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1438,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1438,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1439,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1440,1
    - Dst: RedisServer::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1443,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1443,1
    - Dst: RedisServer::sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1444,1
    - Dst: RedisServer::clear
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1446,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1449,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1449,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1450,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1451,1
    - Dst: RedisServer::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1454,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1454,1
    - Dst: RedisServer::sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1455,1
    - Dst: RedisServer::clear
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1457,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1460,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1460,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1462,1
    - Dst: '&''static str::to_string'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1463,1
    - Dst: RedisServer::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1468,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1468,1
    - Dst: RedisServer::sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1469,1
    - Dst: RedisServer::clear
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1412
    functionDepth: 8
    functionLinenumber: 1412
    functionLinenumberEnd: 1473
    functionName: cluster_async::test_async_cluster_route_according_to_passed_argument
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - Arc::new
    - MockEnv::with_client_builder
    - Ok
    - RedisServer::clone
    - respond_startup_with_replica
    - std::sync::Mutex::new
    - '&''static str::to_string'
    - bool::route_command
    - cmd
    - RedisServer::clear
    - ClusterClientBuilder::read_from_replicas
    - ClusterClient::builder
    - Self::lock
    - RoutingInfo::MultiNode
    - push
    - Cmd::arg
    - Err
    - RedisServer::lock
    - RedisServer::sort
    - Cmd::clone
    - RoutingInfo::SingleNode
    - tokio::runtime::Runtime::block_on
    - Self::unwrap
    - ClusterClientBuilder::retries
    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:1478,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1479,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1479,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1486,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1487,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1487,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1487,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1492,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1495,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1495,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1495,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1499,1
    - Dst: query_async::<i64>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1500,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1476
    functionDepth: 1
    functionLinenumber: 1476
    functionLinenumberEnd: 1503
    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:
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - Cmd::new
    - tokio::runtime::Runtime::block_on
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - Value::Int
    - query_async::<i64>
    - ClusterClientBuilder::retries
    - Cmd::arg
    - unwrap
    - Err
    - '&mut Cmd::arg'
    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:1508,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1509,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1509,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1509,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1509,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1509,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1509,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1521,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1522,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1522,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1522,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1527,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1530,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1530,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1530,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1537,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1537,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1537,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1549,1
    - Dst: query_async::<Vec<i64>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1550,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1549,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1506
    functionDepth: 1
    functionLinenumber: 1506
    functionLinenumberEnd: 1553
    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:
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - Cmd::new
    - tokio::runtime::Runtime::block_on
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - Value::Array
    - arg
    - ClusterClientBuilder::retries
    - Cmd::arg
    - unwrap
    - Err
    - query_async::<Vec<i64>>
    - '&mut Cmd::arg'
    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:1558,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1559,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:1573,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1573,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1575,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1575,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1575,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1575,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1583,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1584,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1556
    functionDepth: 1
    functionLinenumber: 1556
    functionLinenumberEnd: 1587
    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:
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - RedisError::from
    - Cmd::new
    - std::io::Error::new
    - tokio::runtime::Runtime::block_on
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - ClusterClientBuilder::retries
    - Cmd::arg
    - unwrap
    - Err
    - query_async::<Value>
    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:1592,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1593,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1599,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1600,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1600,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1600,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1605,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1606,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1606,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1610,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1611,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1590
    functionDepth: 1
    functionLinenumber: 1590
    functionLinenumberEnd: 1614
    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:
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - Cmd::new
    - tokio::runtime::Runtime::block_on
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - ClusterClientBuilder::retries
    - Cmd::arg
    - unwrap
    - Err
    - query_async::<Value>
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_and_return_nil_if_no_other_value_was_received()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1619,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1620,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1620,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1626,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1627,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1627,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1627,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1632,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1634,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1634,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1635,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1634,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1642,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1643,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1617
    functionDepth: 1
    functionLinenumber: 1617
    functionLinenumberEnd: 1646
    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:
    - query_async::<Value>
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - Cmd::new
    - tokio::runtime::Runtime::block_on
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - unwrap_err
    - ClusterClientBuilder::retries
    - Cmd::arg
    - Err
    - into
    - '&mut Cmd::arg'
    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:1651,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1657,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1658,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1658,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1658,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1663,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1664,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1664,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1668,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1669,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1672
    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:
    - query_async::<Value>
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - tokio::runtime::Runtime::block_on
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - ClusterClientBuilder::retries
    - unwrap
    - Err
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_and_return_all_succeeded_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1677,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1683,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1684,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1684,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1684,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1689,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1691,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1691,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1692,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1691,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1697,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1697,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1701,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1702,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1675
    functionDepth: 1
    functionLinenumber: 1675
    functionLinenumberEnd: 1705
    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:
    - query_async::<Value>
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - tokio::runtime::Runtime::block_on
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - into
    - Ok
    - ClusterClientBuilder::retries
    - Err
    - cmd
    - unwrap_err
    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:1710,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1716,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1717,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1717,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1717,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1722,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1724,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1724,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1724,1
    - Dst: '&str::as_bytes'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1724,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1724,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1726,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1726,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1730,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1731,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1730,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1708
    functionDepth: 1
    functionLinenumber: 1708
    functionLinenumberEnd: 1734
    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:
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - tokio::runtime::Runtime::block_on
    - Value::BulkString
    - query_async::<String>
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - to_vec
    - ClusterClientBuilder::retries
    - '&str::as_bytes'
    - unwrap
    - Err
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_and_return_one_succeeded_ignoring_empty_values()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1739,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1740,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1740,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1746,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1747,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1747,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1747,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1752,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1753,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1753,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1753,1
    - Dst: into_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1754,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1760,1
    - Dst: query_async::<Vec<(String, String)>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1761,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1760,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1737
    functionDepth: 1
    functionLinenumber: 1737
    functionLinenumberEnd: 1774
    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:
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - Cmd::new
    - tokio::runtime::Runtime::block_on
    - Value::BulkString
    - query_async::<Vec<(String, String)>>
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - sort
    - ClusterClientBuilder::retries
    - Cmd::arg
    - unwrap
    - Err
    - into_bytes
    - '&mut Cmd::arg'
    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:1779,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1785,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1786,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1786,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1786,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1791,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1792,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1792,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1792,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1798,1
    - Dst: query_async::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1799,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1798,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1777
    functionDepth: 1
    functionLinenumber: 1777
    functionLinenumberEnd: 1807
    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:
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - tokio::runtime::Runtime::block_on
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - Value::Array
    - sort
    - ClusterClientBuilder::retries
    - unwrap
    - Err
    - query_async::<Vec<String>>
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_and_combine_arrays_of_values()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1812,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1813,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1813,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1813,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1819,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1820,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1820,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1820,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1825,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1826,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1826,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1827,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1827,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1830,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1831,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1831,1
    - Dst: into_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1832,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1827,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1839,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1839,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1839,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1843,1
    - Dst: query_async::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1844,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1810
    functionDepth: 2
    functionLinenumber: 1810
    functionLinenumberEnd: 1847
    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:
    - contains
    - MockEnv::with_client_builder
    - Ok
    - Value::Array
    - std::str::from_utf8
    - Some
    - query_async::<Vec<String>>
    - '&mut Cmd::arg'
    - filter_map
    - Value::BulkString
    - collect
    - arg
    - unwrap
    - into_bytes
    - cmd
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - ClusterClient::builder
    - iter
    - Cmd::arg
    - Err
    - tokio::runtime::Runtime::block_on
    - ClusterClientBuilder::retries
    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:1852,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1853,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1853,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1853,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1854,1
    - Dst: AtomicU16::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1854,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1855,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1861,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1862,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1862,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1865,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1866,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1866,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1867,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1868,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1870,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1871,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1871,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1872,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1875,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1875,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1878,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1879,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1879,1
    - Dst: into_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1880,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1875,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1887,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1887,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1887,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1891,1
    - Dst: query_async::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1892,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1891,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1850
    functionDepth: 8
    functionLinenumber: 1850
    functionLinenumberEnd: 1896
    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:
    - contains
    - AtomicU16::new
    - Arc::new
    - MockEnv::with_client_builder
    - Ok
    - Value::Array
    - std::str::from_utf8
    - parse_redis_value
    - Some
    - query_async::<Vec<String>>
    - RedisServer::clone
    - '&mut Cmd::arg'
    - filter_map
    - Value::BulkString
    - collect
    - arg
    - unwrap
    - cmd
    - into_bytes
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - as_bytes
    - ClusterClient::builder
    - iter
    - Cmd::arg
    - Err
    - Self::fetch_add
    - tokio::runtime::Runtime::block_on
    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:1900,1
    - Dst: username
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1901,1
    - Dst: RedisCluster::username
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1902,1
    - Dst: '&''static str::password'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1901,1
    - Dst: RedisCluster::password
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1903,1
    - Dst: Result::disable_default_user
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1905,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1907,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1908,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1908,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1908,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1908,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1913,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1913,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1913,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1913,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1919,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1899
    functionDepth: 1
    functionLinenumber: 1899
    functionLinenumberEnd: 1920
    functionName: cluster_async::async_cluster_with_username_and_password
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - RedisCluster::password
    - username
    - RedisCluster::username
    - Self::query_async
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - '&mut Cmd::clone'
    - exec_async
    - Result::async_connection
    - '&''static str::password'
    - Result::disable_default_user
    - Cmd::arg
    - Ok::<_, RedisError>
    - cmd
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_with_username_and_password() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1925,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1925,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1931,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1932,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1932,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1935,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1940,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1941,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1941,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1941,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1941,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1945,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1945,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1945,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1945,1
    - Dst: tokio::runtime::Runtime::block_on
      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: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1952,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1923
    functionDepth: 8
    functionLinenumber: 1923
    functionLinenumberEnd: 1958
    functionName: cluster_async::test_async_cluster_io_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - RedisError::from
    - std::io::Error::new
    - Value::BulkString
    - '&str::to_vec'
    - tokio::runtime::Runtime::block_on
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - AtomicI32::new
    - RedisServer::fetch_add
    - ClusterClientBuilder::retries
    - Cmd::arg
    - respond_startup_two_nodes
    - Err
    - cmd
    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:1963,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1963,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1969,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1970,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1972,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1975,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1976,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1976,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1976,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1976,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1980,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1981,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1981,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1961
    functionDepth: 8
    functionLinenumber: 1961
    functionLinenumberEnd: 1991
    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:
    - MockEnv::new
    - Self::fetch_add
    - Self::clone
    - Arc::new
    - cmd
    - tokio::runtime::Runtime::block_on
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - AtomicI32::new
    - Cmd::arg
    - respond_startup_two_nodes
    - Err
    - into
    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:1996,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2014,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2015,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2015,1
    - Dst: ClusterClientBuilder::read_from_replicas
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2015,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2020,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2023,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2025,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2025,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2025,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2025,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2029,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2029,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 1994
    functionDepth: 3
    functionLinenumber: 1994
    functionLinenumberEnd: 2031
    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:
    - '&str::into'
    - ClusterClientBuilder::read_from_replicas
    - respond_startup_with_replica_using_config
    - tokio::runtime::Runtime::block_on
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - Ok
    - Value::SimpleString
    - bool::req_packed_command
    - ClusterClientBuilder::retries
    - redis::cmd
    - Some
    - clone
    - Err
    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:2037,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2037,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2039,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2040,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2042,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2043,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2045,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2046,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2052,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2056,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2034
    functionDepth: 5
    functionLinenumber: 2034
    functionLinenumberEnd: 2057
    functionName: cluster_async::async_cluster_handle_complete_server_disconnect_without_panicking
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Cmd::clone
    - TestClusterContext::new_with_cluster_client_builder
    - RoutingInfo::SingleNode
    - drop
    - bool::req_packed_command
    - Result::async_connection
    - retries
    - Ok::<_, RedisError>
    - bool::route_command
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_handle_complete_server_disconnect_without_panicking()
      -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_insecure_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2061,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2062,1
    - Dst: Result::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2065,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2067,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2068,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2070,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2072,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2074,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2075,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2082,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2086,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2087,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2088,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2091,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2091,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2094,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2060
    functionDepth: 11
    functionLinenumber: 2060
    functionLinenumberEnd: 2095
    functionName: cluster_async::async_cluster_reconnect_after_complete_server_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - Cmd::clone
    - Default::default
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - RoutingInfo::SingleNode
    - RedisCluster::new
    - drop
    - bool::req_packed_command
    - Vec::clone
    - Result::async_connection
    - Result::get_ports
    - retries
    - Ok::<_, RedisError>
    - bool::route_command
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_reconnect_after_complete_server_disconnect()
      -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_insecure_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2100,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2101,1
    - Dst: Result::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2104,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2106,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2107,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2110,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2111,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2112,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2116,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2118,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2119,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2121,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2116,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2129
      start: 2098
    functionDepth: 11
    functionLinenumber: 2098
    functionLinenumberEnd: 2129
    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:
    - unwrap
    - Default::default
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - RedisCluster::new
    - drop
    - Vec::clone
    - RoutingInfo::MultiNode
    - Result::async_connection
    - Result::get_ports
    - Some
    - retries
    - Ok::<_, RedisError>
    - bool::route_command
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_reconnect_after_complete_server_disconnect_route_to_many()->
      RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2134,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2134,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2135,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2136,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2143,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2144,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2144,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2148,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2149,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2149,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2150,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2154,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2155,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2156,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2165,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2170,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2170,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2170,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2172,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2173,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2178,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2178,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2178,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2180,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2180,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2180,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2180,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2187,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2188,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2188,1
    - Dst: "arg(\"test\")\n                    .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2188,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2132
    functionDepth: 8
    functionLinenumber: 2132
    functionLinenumberEnd: 2198
    functionName: cluster_async::test_async_cluster_saves_reconnected_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - '&str::to_vec'
    - MockEnv::with_client_builder
    - Ok
    - parse_redis_value
    - RedisServer::clone
    - broken_pipe_error
    - Value::BulkString
    - cmd
    - as_bytes
    - contains_slice
    - ClusterClient::builder
    - RedisServer::fetch_add
    - Cmd::arg
    - Err
    - RedisServer::load
    - Self::fetch_add
    - "arg(\"test\")\n                    .query_async::<Option<i32>>"
    - tokio::runtime::Runtime::block_on
    - AtomicI32::new
    - ClusterClientBuilder::retries
    - 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:2207,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2207,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2207,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2207,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2207,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:2207,1
    - Dst: pop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2207,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2207,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2207,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2218,1
    - Dst: RedisResult::as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2218,1
    - Dst: windows
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2218,1
    - Dst: filter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2218,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut impl redis::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 2223
      start: 2204
    functionDepth: 2
    functionLinenumber: 2204
    functionLinenumberEnd: 2223
    functionName: c::l::u::s::t::e::r::_::a::s::y::n::c::::::::k::i::l::l::_::c::o::n::n::e::c::t::i::o::n::_::o::n::_::d::r::o::p::_::e::v::e::n::_::w::h::e::n::_::b::l::o::c::k::i::n::g::count_ids
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - pop
    - windows
    - filter
    - RedisResult::as_bytes
    - Ok
    - "cmd(\"GET\")\n                .arg(\"LIST\")\n                .cmd(\"CLIENT\"\
      )\n                .arg(\"LIST\")\n                .query_async::<Vec<Option<String>>>"
    - Pipeline::cmd
    - unwrap
    - '&mut Cmd::cmd'
    - count
    - pipe
    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:2202,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2202,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2225,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2226,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2230,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2231,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2232,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2232,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2232,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2232,1
    - Dst: fuse
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2231,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2242,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2242,1
    - Dst: fuse
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2242,1
    - Dst: futures::future::select
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2244,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2245,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2247,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2247,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2251,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2201
    functionDepth: 5
    functionLinenumber: 2201
    functionLinenumberEnd: 2252
    functionName: cluster_async::kill_connection_on_drop_even_when_blocking
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - TestClusterContext::new_with_cluster_client_builder
    - TestClusterContext::async_connection
    - futures_time::time::Duration::from_millis
    - drop
    - Ok
    - Box::pin
    - exec_async
    - fuse
    - Cmd::arg
    - futures_time::task::sleep
    - retries
    - futures::future::select
    - cmd
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: async fn kill_connection_on_drop_even_when_blocking() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2257,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2258,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2259,1
    - Dst: AtomicU32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2259,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2260,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2265,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2266,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2266,1
    - Dst: ClusterClientBuilder::max_retry_wait
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2266,1
    - Dst: ClusterClientBuilder::min_retry_wait
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2266,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2272,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2275,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2276,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2276,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2277,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2276,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2283,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2283,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2287,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2288,1
    - Dst: RedisResult::timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2288,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2290,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2288,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2298,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2298,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2255
    functionDepth: 8
    functionLinenumber: 2255
    functionLinenumberEnd: 2302
    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:
    - RedisResult::timeout
    - AtomicU32::new
    - Arc::new
    - MockEnv::with_client_builder
    - Ok
    - into
    - RedisServer::clone
    - Duration::from_millis
    - Cmd::get_packed_command
    - cmd
    - unwrap_err
    - ClusterClientBuilder::max_retry_wait
    - sleep
    - ClusterClientBuilder::min_retry_wait
    - Cmd::exec_async
    - ClusterClient::builder
    - Err
    - Self::fetch_add
    - tokio::runtime::Runtime::block_on
    - futures_time::time::Duration::from_millis
    - ClusterClientBuilder::retries
    - respond_startup
    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:2306,1
    - Dst: get_pending_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2308,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2310,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2311,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2305
    functionDepth: 9
    functionLinenumber: 2305
    functionLinenumberEnd: 2314
    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
    - smoke_test_connection
    - Ok::<_, RedisError>
    - TestClusterContext::new
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_connect_lazily() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2318,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2319,1
    - Dst: redis::Pipeline::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2321,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2321,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2321,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2328,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2328,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2328,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2317
    functionDepth: 10
    functionLinenumber: 2317
    functionLinenumberEnd: 2336
    functionName: cluster_async::fail_on_empty_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new
    - query_async::<String>
    - Ok
    - redis::Pipeline::new
    - Result::async_connection
    - redis::Cmd::new
    - unwrap_err
    linkageType: ''
    returnType: RedisResult
    signature: async fn fail_on_empty_command() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2345,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2347,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2347,1
    - Dst: '&mut Cmd::to_owned'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2347,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2348,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2345,1
    - Dst: from_redis_value::<InfoDict>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2352,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2352,1
    - Dst: parse_version
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut ClusterConnection'
    constantsTouched: []
    func_position:
      end: 2354
      start: 2344
    functionDepth: 1
    functionLinenumber: 2344
    functionLinenumberEnd: 2354
    functionName: cluster_async::check_if_redis_6
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - from_redis_value::<InfoDict>
    - RedisResult::route_command
    - RoutingInfo::SingleNode
    - '&mut Cmd::to_owned'
    - parse_version
    - Cmd::arg
    - unwrap
    - cmd
    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:2361,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2362,1
    - Dst: '&mut ClusterConnection::psubscribe'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2374,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2375,1
    - Dst: '&mut ClusterConnection::ssubscribe'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2385,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2386,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2396,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - pubsub_conn
    - rx
    - is_redis_6
    argTypes:
    - '&mut ClusterConnection'
    - '&mut UnboundedReceiver<PushInfo>'
    - bool
    constantsTouched: []
    func_position:
      end: 2397
      start: 2356
    functionDepth: 2
    functionLinenumber: 2356
    functionLinenumberEnd: 2397
    functionName: cluster_async::subscribe_to_channels
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut ClusterConnection::psubscribe'
    - get_push
    - Ok
    - '&mut ClusterConnection::subscribe'
    - '&mut ClusterConnection::ssubscribe'
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn subscribe_to_channels(pubsub_conn: &mut ClusterConnection,rx:
      &mut UnboundedReceiver<PushInfo>,is_redis_6: bool,) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut UnboundedReceiver<PushInfo>::recv'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2400,1
    - Dst: Result::timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2400,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2401,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2400,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - rx
    argTypes:
    - '&mut UnboundedReceiver<PushInfo>'
    constantsTouched: []
    func_position:
      end: 2405
      start: 2399
    functionDepth: 13
    functionLinenumber: 2399
    functionLinenumberEnd: 2405
    functionName: cluster_async::get_push
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - futures_time::time::Duration::from_millis
    - '&mut UnboundedReceiver<PushInfo>::recv'
    - Result::timeout
    linkageType: ''
    returnType: PushInfo
    signature: 'async fn get_push(rx: &mut UnboundedReceiver<PushInfo>) -> PushInfo'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut ClusterConnection::publish'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2412,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2413,1
    - Dst: '&mut ClusterConnection::publish'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2425,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2426,1
    - Dst: '&mut ClusterConnection::spublish'
      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:2441,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2453,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - publish_conn
    - rx
    - is_redis_6
    argTypes:
    - '&mut ClusterConnection'
    - '&mut UnboundedReceiver<PushInfo>'
    - bool
    constantsTouched: []
    func_position:
      end: 2454
      start: 2407
    functionDepth: 14
    functionLinenumber: 2407
    functionLinenumberEnd: 2454
    functionName: cluster_async::check_publishing
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut ClusterConnection::spublish'
    - Ok
    - '&mut ClusterConnection::publish'
    - get_push
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn check_publishing(publish_conn: &mut ClusterConnection,rx:
      &mut UnboundedReceiver<PushInfo>,is_redis_6: bool,) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2458,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2459,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2460,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2460,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2462,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2467,1
    - Dst: subscribe_to_channels
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2469,1
    - Dst: check_publishing
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2471,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2473,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2474
      start: 2457
    functionDepth: 16
    functionLinenumber: 2457
    functionLinenumberEnd: 2474
    functionName: cluster_async::pub_sub_subscription
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - check_if_redis_6
    - TestClusterContext::new_with_cluster_client_builder
    - tokio::sync::mpsc::unbounded_channel
    - subscribe_to_channels
    - clone
    - Ok::<_, RedisError>
    - use_protocol
    - check_publishing
    - ProtocolVersion::push_sender
    linkageType: ''
    returnType: RedisResult
    signature: async fn pub_sub_subscription() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2478,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2479,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2480,1
    - Dst: redis::cluster::ClusterConfig::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2482,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2482,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2482,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2488,1
    - Dst: subscribe_to_channels
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2490,1
    - Dst: check_publishing
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2492,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2494,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2477
    functionDepth: 16
    functionLinenumber: 2477
    functionLinenumberEnd: 2495
    functionName: cluster_async::pub_sub_subscription_with_config
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - check_if_redis_6
    - redis::cluster::ClusterConfig::new
    - Self::set_push_sender
    - TestClusterContext::new_with_cluster_client_builder
    - tokio::sync::mpsc::unbounded_channel
    - subscribe_to_channels
    - clone
    - Ok::<_, RedisError>
    - use_protocol
    - check_publishing
    linkageType: ''
    returnType: RedisResult
    signature: async fn pub_sub_subscription_with_config() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2499,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2500,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2503,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2504,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2505,1
    - Dst: ssubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2508,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2510,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2510,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2510,1
    - Dst: "arg(\"SHARDNUMSUB\")\n                .arg(\"foo\")\n                .query_async::<(String,\
        \ usize)>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2510,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2510,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2498
    functionDepth: 2
    functionLinenumber: 2498
    functionLinenumberEnd: 2519
    functionName: cluster_async::pub_sub_shardnumsub
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - check_if_redis_6
    - TestClusterContext::new_with_cluster_client_builder
    - TestClusterContext::async_connection
    - "arg(\"SHARDNUMSUB\")\n                .arg(\"foo\")\n                .query_async::<(String,\
      \ usize)>"
    - Ok
    - ssubscribe
    - Cmd::arg
    - unwrap
    - Ok::<_, RedisError>
    - use_protocol
    - cmd
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: async fn pub_sub_shardnumsub() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2523,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2524,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2525,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2525,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2527,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2532,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2534,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2535,1
    - Dst: unsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2546,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2547,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2559,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2560,1
    - Dst: punsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2568,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2569,1
    - Dst: ssubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2579,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2580,1
    - Dst: sunsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2588,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2589,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2599,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2600,1
    - Dst: spublish
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2602,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2610,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2611
      start: 2522
    functionDepth: 15
    functionLinenumber: 2522
    functionLinenumberEnd: 2611
    functionName: cluster_async::pub_sub_unsubscription
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - check_if_redis_6
    - punsubscribe
    - TestClusterContext::new_with_cluster_client_builder
    - get_push
    - tokio::sync::mpsc::unbounded_channel
    - subscribe
    - psubscribe
    - spublish
    - ssubscribe
    - sunsubscribe
    - clone
    - publish
    - Ok::<_, RedisError>
    - use_protocol
    - unsubscribe
    - ProtocolVersion::push_sender
    linkageType: ''
    returnType: RedisResult
    signature: async fn pub_sub_unsubscription() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2615,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2616,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2617,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2617,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2619,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2622,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2623,1
    - Dst: subscribe_to_channels
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2625,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2627,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2637,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2614
    functionDepth: 16
    functionLinenumber: 2614
    functionLinenumberEnd: 2638
    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:
    - check_if_redis_6
    - TestClusterContext::new_with_cluster_client_builder
    - tokio::sync::mpsc::unbounded_channel
    - TestClusterContext::async_connection
    - drop
    - subscribe_to_channels
    - clone
    - Ok::<_, RedisError>
    - use_protocol
    - ProtocolVersion::push_sender
    linkageType: ''
    returnType: RedisResult
    signature: async fn connection_is_still_usable_if_pubsub_receiver_is_dropped()
      -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2643,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2644,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2645,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2645,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2647,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2650,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2651,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2653,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2661,1
    - Dst: unsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2673,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2677,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2690,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2694,1
    - Dst: punsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2707,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2711,1
    - Dst: ssubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2725,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2729,1
    - Dst: sunsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2742,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2746,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2765,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 99
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2766
      start: 2641
    functionDepth: 15
    functionLinenumber: 2641
    functionLinenumberEnd: 2766
    functionName: cluster_async::multiple_subscribes_and_unsubscribes_work
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - check_if_redis_6
    - punsubscribe
    - TestClusterContext::new_with_cluster_client_builder
    - get_push
    - tokio::sync::mpsc::unbounded_channel
    - TestClusterContext::async_connection
    - subscribe
    - psubscribe
    - ssubscribe
    - sunsubscribe
    - clone
    - Ok::<_, RedisError>
    - use_protocol
    - unsubscribe
    - ProtocolVersion::push_sender
    linkageType: ''
    returnType: RedisResult
    signature: async fn multiple_subscribes_and_unsubscribes_work() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2773,1
    - Dst: TestClusterContext::new_insecure_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2774,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2775,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2775,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2777,1
    - Dst: TestClusterContext::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2780,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2784,1
    - Dst: subscribe_to_channels
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2786,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2789,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2793,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2804,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2805,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2806,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2816,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2818,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2819,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2821,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2827,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2828,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2828,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2829,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2829,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2831,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2831,1
    - Dst: check_publishing
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2854,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2856,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2857
      start: 2769
    functionDepth: 16
    functionLinenumber: 2769
    functionLinenumberEnd: 2857
    functionName: cluster_async::pub_sub_reconnect_after_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - TestClusterContext::get_ports
    - clone
    - Some
    - check_publishing
    - Default::default
    - Ok::<_, RedisError>
    - cmd
    - route_command
    - tokio::sync::mpsc::unbounded_channel
    - RoutingInfo::MultiNode
    - push
    - check_if_redis_6
    - get_push
    - RedisCluster::new
    - drop
    - Vec::clone
    - subscribe_to_channels
    - use_protocol
    - ProtocolVersion::push_sender
    linkageType: ''
    returnType: RedisResult
    signature: async fn pub_sub_reconnect_after_disconnect() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2862,1
    - Dst: TestClusterContext::new_insecure_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2863,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2864,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2864,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2866,1
    - Dst: TestClusterContext::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2869,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2871,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2873,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2875,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2875,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2883,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2883,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2885,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2883,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2898,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2899,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2900,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2910,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2912,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2913,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2915,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2926,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2927
      start: 2860
    functionDepth: 15
    functionLinenumber: 2860
    functionLinenumberEnd: 2927
    functionName: cluster_async::pub_sub_should_not_reconnect_if_subscription_failed
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - TestClusterContext::get_ports
    - recv
    - clone
    - Some
    - Default::default
    - unwrap
    - Ok::<_, RedisError>
    - cmd
    - unwrap_err
    - route_command
    - tokio::sync::mpsc::unbounded_channel
    - TestClusterContext::async_connection
    - subscribe
    - timeout
    - RoutingInfo::MultiNode
    - futures_time::time::Duration::from_millis
    - RedisCluster::new
    - drop
    - Vec::clone
    - use_protocol
    - ProtocolVersion::push_sender
    linkageType: ''
    returnType: RedisResult
    signature: async fn pub_sub_should_not_reconnect_if_subscription_failed() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_mtls
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2938,1
    - Dst: support::mtls_test::create_cluster_client_from_cluster
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2940,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2940,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2941,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2941,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2942,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2942,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2942,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2942,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2947,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2947,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2947,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2947,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2953,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2954
      start: 2937
    functionDepth: 1
    functionLinenumber: 2937
    functionLinenumberEnd: 2954
    functionName: cluster_async::async_cluster_basic_cmd_with_mtls
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - get_async_connection
    - support::mtls_test::create_cluster_client_from_cluster
    - Self::query_async
    - Ok::<_, RedisError>
    - '&mut Cmd::clone'
    - exec_async
    - TestClusterContext::new_with_mtls
    - Cmd::arg
    - unwrap
    - Result::unwrap
    - cmd
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_basic_cmd_with_mtls() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_mtls
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2958,1
    - Dst: support::mtls_test::create_cluster_client_from_cluster
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2960,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2960,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2961,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2962,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2962,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2962,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2962,1
    - Dst: bool::is_ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2971,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2985,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2986
      start: 2957
    functionDepth: 11
    functionLinenumber: 2957
    functionLinenumberEnd: 2986
    functionName: cluster_async::async_cluster_should_not_connect_without_mtls_enabled
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - get_async_connection
    - first
    - support::mtls_test::create_cluster_client_from_cluster
    - Ok::<_, RedisError>
    - TestClusterContext::new_with_mtls
    - connection_info
    - bool::is_ok
    - unwrap
    - Result::unwrap
    - addr
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_cluster_should_not_connect_without_mtls_enabled() ->
      RedisResult<()>
  - 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:
    - ArbitraryValue
    - Self::size
    - 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: RedisResult::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: RedisResult::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: RedisResult::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:
    - Box::new
    - PushKind::to_string
    - into_iter
    - collect
    - Value::SimpleString
    - iter
    - shrink
    - ArbitraryValue
    - "iter()\n                    .map(|x| ArbitraryValue(x.clone()))\n         \
      \           .collect::<Vec<_>>"
    - clone
    - Box::map
    - insert
    - RedisResult::shrink
    - map
    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:
    - len
    - io::Error::new
    - '&mut task::Context::advance'
    - Pin::new
    - wake_by_ref
    - '&mut task::Context::remaining'
    - Ok
    - Self::filled
    - next
    - '&mut task::Context::initialize_unfilled'
    - '&mut task::Context::take'
    - Poll::Ready
    - Err
    - RedisServer::poll_read
    - into
    - std::cmp::min
    - Pin<&mut Self>::waker
    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::connection
    - TestContext::new
    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::connection
    - TestContext::new
    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::connection
    - unwrap
    - TestContext::new
    - redis::Connection::geo_dist
    linkageType: ''
    returnType: void
    signature: fn test_geodist_existing_members()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:47,1
    - Dst: 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::connection
    - unwrap
    - TestContext::new
    - redis::Connection::geo_dist
    linkageType: ''
    returnType: void
    signature: fn test_geodist_support_option()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:67,1
    - Dst: 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::connection
    - redis::Connection::geo_hash
    - TestContext::new
    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::connection
    - unwrap
    - redis::Connection::geo_pos
    - TestContext::new
    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::connection
    - unwrap
    - redis::Connection::geo_pos
    - TestContext::new
    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:
    - sort_by
    - geo_radius
    - RadiusOptions::default
    - Self::with_dist
    - Ord::cmp
    - TestContext::connection
    - Self::limit
    - redis::Connection::geo_radius
    - unwrap
    - Self::order
    - Self::with_coord
    - TestContext::new
    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:
    - RadiusOptions::default
    - collect
    - iter
    - TestContext::connection
    - as_str
    - unwrap
    - Self::order
    - TestContext::new
    - redis::Connection::geo_radius_by_member
    - map
    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:13,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 16
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 16
    functionName: test_acl_whoami
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_acl_whoami()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:20,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:21,1
    - Dst: redis::Connection::acl_help
      Src: /src/redis-rs/redis/tests/test_acl.rs:22,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: test_acl_help
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - TestContext::new
    - expect
    - redis::Connection::acl_help
    linkageType: ''
    returnType: void
    signature: fn test_acl_help()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:30,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:31,1
    - Dst: redis::Connection::acl_getuser
      Src: /src/redis-rs/redis/tests/test_acl.rs:59,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:59,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 94
    functionName: test_acl_getsetdel_users
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - expect
    - redis::Connection::acl_getuser
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_acl_getsetdel_users()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:98,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:99,1
    - Dst: redis::Connection::acl_cat
      Src: /src/redis-rs/redis/tests/test_acl.rs:100,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:100,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:124,1
    - Dst: redis::Connection::acl_cat_categoryname
      Src: /src/redis-rs/redis/tests/test_acl.rs:129,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:129,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 135
    functionName: test_acl_cat
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::acl_cat
    - iter
    - TestContext::connection
    - expect
    - redis::Connection::acl_cat_categoryname
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_acl_cat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:139,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:140,1
    - Dst: redis::Connection::acl_genpass
      Src: /src/redis-rs/redis/tests/test_acl.rs:141,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:141,1
    - Dst: redis::Connection::acl_genpass_bits
      Src: /src/redis-rs/redis/tests/test_acl.rs:144,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: test_acl_genpass
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::acl_genpass
    - redis::Connection::acl_genpass_bits
    - TestContext::connection
    - expect
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_acl_genpass()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:150,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:151,1
    - Dst: redis::Connection::acl_log
      Src: /src/redis-rs/redis/tests/test_acl.rs:152,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: test_acl_log
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - TestContext::new
    - expect
    - 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:159,1
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_acl.rs:160,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:162,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:164,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:164,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:164,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:164,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:164,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_acl.rs:164,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:164,1
    - Dst: redis::Connection::acl_dryrun
      Src: /src/redis-rs/redis/tests/test_acl.rs:178,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_acl.rs:179,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 185
    functionName: test_acl_dryrun
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::acl_dryrun
    - redis::Cmd::arg
    - String::from
    - exec
    - RedisResult::unwrap
    - TestContext::connection
    - run_test_if_version_supported
    - arg
    - redis::cmd
    - unwrap
    - TestContext::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_acl_dryrun()
  - 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:
    - TestContext::connection
    - TestContext::with_modules
    - HashMap::new
    - json_set::<_, _, _, bool>
    - insert
    - 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:
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - redis::Connection::json_arr_append
    linkageType: ''
    returnType: void
    signature: fn test_module_json_arr_append()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs: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_arr_index
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - 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:
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - redis::Connection::json_arr_insert
    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:
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - redis::Connection::json_arr_len
    linkageType: ''
    returnType: void
    signature: fn test_module_json_arr_len()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs: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:
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - 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:
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_arr_trim
    - redis::Connection::json_set
    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:
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - redis::Connection::json_get
    - 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:
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - redis::Connection::json_del
    linkageType: ''
    returnType: void
    signature: fn test_module_json_del()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs: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:
    - '&str::into'
    - Ok
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - redis::Connection::json_get
    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:
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_mset
    - redis::Connection::json_mget
    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: 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:
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - std::env::var
    - supports_resp3
    - starts_with
    - redis::Connection::json_num_incr_by
    - unwrap_or_default
    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:
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - redis::Connection::json_obj_keys
    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:
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - redis::Connection::json_obj_len
    linkageType: ''
    returnType: void
    signature: fn test_module_json_obj_len()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs: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:
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    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_str_append
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - redis::Connection::json_get
    linkageType: ''
    returnType: void
    signature: fn test_module_json_str_append()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs: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:
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_str_len
    - redis::Connection::json_set
    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:
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - redis::Connection::json_toggle
    linkageType: ''
    returnType: void
    signature: fn test_module_json_toggle()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs: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: 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:
    - redis::Connection::json_type
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - std::env::var
    - supports_resp3
    - starts_with
    - unwrap_or_default
    linkageType: ''
    returnType: void
    signature: fn test_module_json_type()
  - 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:
    - unwrap_or_else
    - get
    - RedisResult::unwrap
    - redis::ConnectionInfo::addr
    - Box::pin
    - redis::ConnectionInfo::into_connection_info
    - clone
    - unwrap
    - future::ok
    - read
    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:
    - unwrap_or_else
    - get
    - RedisResult::unwrap
    - Ok
    - redis::ConnectionInfo::addr
    - redis::ConnectionInfo::into_connection_info
    - clone
    - unwrap
    - read
    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:
    - '&str::into'
    - contains_slice
    - Value::SimpleString
    - Ok
    - Value::Array
    - Err
    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:
    - '&str::into'
    - into_iter
    - std::iter::Chain::map
    - contains_slice
    - Value::SimpleString
    - Ok
    - collect
    - flat_map
    - Option<Vec<MockSlotRange>>::unwrap_or
    - Value::Array
    - Err
    - Option<Vec<MockSlotRange>>::into_iter
    linkageType: ''
    returnType: Result
    signature: 'pub fn respond_startup_with_replica_using_config(name: &str,cmd: &[u8],slots_config:
      Option<Vec<MockSlotRange>>,) -> Result<(), RedisResult<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs: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:
    - expect_err
    - String::from_redis_value
    - RedisResult::into_iter
    - Ok
    - Err
    - std::iter::Chain::nth
    - into
    - Result::unwrap
    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:
    - Self::with_client_builder
    - ClusterClient::builder
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(id: &str,handler: impl Fn(&[u8], u16) -> Result<(), RedisResult<Value>>
      + Send + Sync + ''static,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::runtime::Builder::new_current_thread
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs: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:
    - to_string
    - tokio::runtime::Builder::new_current_thread
    - RemoveHandler
    - write
    - Arc::new
    - tokio::runtime::Runtime::block_on
    - RedisResult::unwrap
    - get_generic_connection
    - get_async_generic_connection
    - enable_io
    - build
    - clone
    - unwrap
    - enable_time
    - insert
    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:
    - tokio::runtime::Builder::new_current_thread
    - RedisResult::unwrap
    - enable_io
    - build
    - enable_time
    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: Err
      Src: /src/redis-rs/redis/tests/support/mod.rs:65,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/support/mod.rs:65,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
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    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:
    - panic::take_hook
    - futures_util::FutureExt::fuse
    - block_on_all_using_tokio
    - block_on_all_using_smol
    - panic::set_hook
    - futures_time::time::Duration::from_millis
    - swap
    - futures_time::task::sleep
    - Err
    - store
    - into
    - Box::new
    - load
    linkageType: ''
    returnType: F::Output
    signature: 'pub fn block_on_all<F, V>(f: F, runtime: RuntimeType) -> F::OutputwhereF:
      Future<Output = RedisResult<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
    - tokio::runtime::Runtime::block_on
    - Result::unwrap
    - 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
    - is_none
    - rustls::crypto::CryptoProvider::get_default
    - rustls::crypto::ring::default_provider
    linkageType: ''
    returnType: void
    signature: pub(crate) fn start_tls_crypto_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 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: 156
    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:
    - Self::with_modules_and_tls
    - Some
    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:
    - RedisServer::get_addr
    - Self::with_modules_addr_and_tls
    - start_tls_crypto_provider
    - redis_test::utils::get_random_available_port
    linkageType: ''
    returnType: Self
    signature: 'fn with_modules_and_tls(modules: &[Module],mtls_enabled: bool,tls_files:
      Option<TlsFilePaths>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 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:
    - RedisServer::connection_info
    - build_single_client
    - is_connection_refusal
    - unwrap_or_else
    - Duration::from_millis
    - RedisResult::unwrap
    - get_connection
    - std::thread::sleep
    - redis_test::server::use_protocol
    - Cmd::spawn
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - flushdb::<()>
    - unwrap
    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: 130
    functionsReached:
    - unwrap
    - get_connection
    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: 19
    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:
    - get_multiplexed_async_connection_with_config
    - Self::set_cache_config
    - clone
    - AsyncConnectionConfig::new
    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:
    - TestContext::connection
    - get_version
    linkageType: ''
    returnType: Version
    signature: pub fn get_version(&self) -> Version
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - 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: Ok
      Src: /src/redis-rs/redis/tests/support/mod.rs:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    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:
    - Ok
    - encode_value
    - Self::iter
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_iter<W>(values: &[Value], writer: &mut W, prefix: &str)
      -> io::Result<()>whereW: io::Write,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 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: encode_value
      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: 4
    EdgeCount: 4
    ICount: 14
    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:
    - Ok
    - encode_value
    - Self::iter
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_map<W>(values: &[(Value, Value)], writer: &mut W, prefix:
      &str) -> io::Result<()>whereW: io::Write,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut W::write_all'
      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: encode_value
      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: 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: 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: 13
    EdgeCount: 13
    ICount: 47
    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
    - encode_map
    - Ok
    - iter
    - '&mut W::write_all'
    - encode_value
    - encode_iter
    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: RedisResult::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: RedisResult::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:
    - RedisResult::map
    - parse::<u16>
    - redis::ConnectionInfo::get
    - RedisResult::unwrap
    - collect
    - unwrap
    - u8::split
    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:
    - parse_version
    - query
    - redis::Cmd::new
    - unwrap
    - Self::arg
    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: 34
    functionsReached:
    - $crate::support::TestContext::new
    - TestContext::get_version
    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:
    - Vec::new
    - BufReader::new
    - expect
    - bool::expect
    - Some
    - RedisServer::read_to_end
    - File::open
    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: RedisResult::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: RedisResult::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: RedisResult::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:
    - RedisResult::iter
    - to_owned
    - RedisResult::addr
    - collect
    - RedisResult::clone
    - into_connection_info
    - unwrap
    - map
    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:
    - redis::cluster::ClusterClientBuilder::new
    - first
    - certs
    - expect
    - load_certs_from_file
    - build
    - as_ref
    - clean_node_info
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn create_cluster_client_from_cluster(cluster: &TestClusterContext,mtls_enabled:
      bool,) -> Result<ClusterClient, RedisError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/support/mod.rs: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::arg
    - arg
    - redis::cmd
    - '&mut Cmd::ignore'
    - Pipeline::cmd
    - redis::pipe
    - ignore
    linkageType: ''
    returnType: Pipeline
    signature: pub fn build_simple_pipeline_for_invalidation() -> Pipeline
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/support/mod.rs: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: redis::ConnectionInfo::split_once
      Src: /src/redis-rs/redis/tests/support/mod.rs:559,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:559,1
    - Dst: split_once
      Src: /src/redis-rs/redis/tests/support/mod.rs:561,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:561,1
    - Dst: get_multiplexed_async_connection
      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: redis::cmd
      Src: /src/redis-rs/redis/tests/support/mod.rs:564,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:564,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/support/mod.rs:564,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:564,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/support/mod.rs:564,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:564,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mod.rs:572,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 2
    argNames:
    - conn_to_kill
    - client
    argTypes:
    - '&mut impl aio::ConnectionLike'
    - '&redis::Client'
    constantsTouched: []
    func_position:
      end: 573
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 573
    functionName: kill_client_async
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 2
    functionsReached:
    - get_multiplexed_async_connection
    - '&mut Cmd::query_async'
    - split_once
    - Ok
    - redis::ConnectionInfo::split_once
    - arg
    - redis::cmd
    - Cmd::arg
    - query_async
    - unwrap
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn kill_client_async(conn_to_kill: &mut impl aio::ConnectionLike,client:
      &redis::Client,) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 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:
    - to_redis_args
    - collect
    - iter
    - Result::as_ref
    - std::str::from_utf8
    - unwrap
    - map
    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:
    - '&redis::sentinel::Sentinel::unwrap'
    - support::start_tls_crypto_provider
    - impl Iterator::map
    - wait_for_cluster_up
    - redis::sentinel::Sentinel::build
    - collect
    - Result::iter_sentinel_servers
    - RedisSentinelCluster::new
    - clone
    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:
    - TestSentinelContext::tls_mode
    - Self::set_tls_mode
    - SentinelNodeConnectionInfo::default
    linkageType: ''
    returnType: SentinelNodeConnectionInfo
    signature: pub fn sentinel_node_connection_info(&self) -> SentinelNodeConnectionInfo
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:69,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:71,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: TestSentinelContext::tls_mode
    functionSourceFile: /src/redis-rs/redis/tests/support/sentinel.rs
    functionUses: 2
    functionsReached:
    - client_addr
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn tls_mode(&self) -> Option<TlsMode>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:81,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:82,1
    - Dst: redis_test::sentinel::wait_for_master_server
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:84,1
    - Dst: '&mut redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:84,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:84,1
    - Dst: ConnectionAddr::is_err
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:85,1
    - Dst: redis_test::sentinel::wait_for_replica
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:89,1
    - Dst: '&mut redis::sentinel::Sentinel::replica_for'
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:89,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:89,1
    - Dst: ConnectionAddr::is_err
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: TestSentinelContext::wait_for_cluster_up
    functionSourceFile: /src/redis-rs/redis/tests/support/sentinel.rs
    functionUses: 0
    functionsReached:
    - redis_test::sentinel::wait_for_replica
    - TestSentinelContext::sentinel_node_connection_info
    - '&mut redis::sentinel::Sentinel::replica_for'
    - redis_test::sentinel::wait_for_master_server
    - Some
    - TestSentinelContext::sentinel_mut
    - '&mut redis::sentinel::Sentinel::master_for'
    - ConnectionAddr::is_err
    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:33,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/support/cluster.rs:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 16
    functionLinenumber: 32
    functionLinenumberEnd: 37
    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:40,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/support/cluster.rs:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 16
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: TestClusterContext::new_with_mtls
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 4
    functionsReached:
    - Default::default
    - Self::new_with_config_and_builder
    linkageType: ''
    returnType: TestClusterContext
    signature: pub fn new_with_mtls() -> TestClusterContext
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/support/cluster.rs:51,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/support/cluster.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 16
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: TestClusterContext::new_without_ip_alts
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - Self::new_with_config_and_builder
    linkageType: ''
    returnType: TestClusterContext
    signature: pub fn new_without_ip_alts() -> TestClusterContext
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/support/cluster.rs:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cluster_config
    argTypes:
    - RedisClusterConfiguration
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 63
    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:69,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/support/cluster.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - initializer
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 16
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: TestClusterContext::new_with_cluster_client_builder
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 14
    functionsReached:
    - Default::default
    - Self::new_with_config_and_builder
    linkageType: ''
    returnType: TestClusterContext
    signature: 'pub fn new_with_cluster_client_builder<F>(initializer: F) -> TestClusterContextwhereF:
      FnOnce(redis::cluster::ClusterClientBuilder) -> redis::cluster::ClusterClientBuilder,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/support/cluster.rs:82,1
    - Dst: RedisClusterConfiguration::default
      Src: /src/redis-rs/redis/tests/support/cluster.rs:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - initializer
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    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:92,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/support/cluster.rs:96,1
    - Dst: Result::iter_servers
      Src: /src/redis-rs/redis/tests/support/cluster.rs:97,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/tests/support/cluster.rs:97,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/cluster.rs:97,1
    - Dst: redis::cluster::ClusterClientBuilder::new
      Src: /src/redis-rs/redis/tests/support/cluster.rs:101,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/cluster.rs:101,1
    - Dst: ClusterClientBuilder::use_protocol
      Src: /src/redis-rs/redis/tests/support/cluster.rs:101,1
    - Dst: redis_test::server::use_protocol
      Src: /src/redis-rs/redis/tests/support/cluster.rs:102,1
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis/tests/support/cluster.rs:105,1
    - Dst: certs
      Src: /src/redis-rs/redis/tests/support/cluster.rs:107,1
    - Dst: super::load_certs_from_file
      Src: /src/redis-rs/redis/tests/support/cluster.rs:107,1
    - Dst: initializer
      Src: /src/redis-rs/redis/tests/support/cluster.rs:111,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/support/cluster.rs:113,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:113,1
    - Dst: redis_test::server::use_protocol
      Src: /src/redis-rs/redis/tests/support/cluster.rs:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 2
    argNames:
    - cluster_config
    - initializer
    argTypes:
    - RedisClusterConfiguration
    - F
    constantsTouched: []
    func_position:
      end: 122
      start: 85
    functionDepth: 13
    functionLinenumber: 85
    functionLinenumberEnd: 122
    functionName: TestClusterContext::new_with_config_and_builder
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 3
    functionsReached:
    - redis::cluster::ClusterClientBuilder::new
    - ClusterClientBuilder::use_protocol
    - support::start_tls_crypto_provider
    - impl Iterator::map
    - RedisCluster::new
    - certs
    - collect
    - RedisResult::unwrap
    - super::load_certs_from_file
    - ClusterType::get_intended
    - redis_test::server::use_protocol
    - build
    - clone
    - initializer
    - Result::iter_servers
    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:125,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: TestClusterContext::connection
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 1
    functionsReached:
    - unwrap
    - get_connection
    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:130,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: TestClusterContext::async_connection
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 9
    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:137,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - config
    argTypes:
    - redis::cluster::ClusterConfig
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 141
    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:148,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: TestClusterContext::async_generic_connection
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - "client\n            .get_async_generic_connection::<C>"
    linkageType: ''
    returnType: redis::cluster_async::ClusterConnection
    signature: 'pub async fn async_generic_connection<C: ConnectionLike + Connect
      + Clone + Send + Sync + Unpin + ''static,>(&self,) -> redis::cluster_async::ClusterConnection<C>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::connection
      Src: /src/redis-rs/redis/tests/support/cluster.rs:155,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/support/cluster.rs:156,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/support/cluster.rs:157,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/support/cluster.rs:160,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:160,1
    - Dst: ConnectionAddr::starts_with
      Src: /src/redis-rs/redis/tests/support/cluster.rs:161,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/support/cluster.rs:165,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/support/cluster.rs:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 169
    functionName: TestClusterContext::wait_for_cluster_up
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - query::<String>
    - ConnectionAddr::starts_with
    - Duration::from_millis
    - std::thread::sleep
    - arg
    - redis::cmd
    - TestClusterContext::connection
    - unwrap
    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:173,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/support/cluster.rs:174,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:173,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/support/cluster.rs:180,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:180,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/support/cluster.rs:181,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/support/cluster.rs:181,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/support/cluster.rs:181,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/support/cluster.rs:181,1
    - Dst: exec
      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: get_connection
      Src: /src/redis-rs/redis/tests/support/cluster.rs:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 171
    functionDepth: 18
    functionLinenumber: 171
    functionLinenumberEnd: 193
    functionName: TestClusterContext::disable_default_user
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - RedisServer::connection_info
    - redis::Cmd::arg
    - support::build_single_client
    - exec
    - RedisResult::unwrap
    - get_connection
    - arg
    - redis::cmd
    - '&mut Cmd::arg'
    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:196,1
    - Dst: super::get_version
      Src: /src/redis-rs/redis/tests/support/cluster.rs:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 17
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: TestClusterContext::get_version
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - super::get_version
    - TestClusterContext::connection
    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:201,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/support/cluster.rs:201,1
    - Dst: redis::ConnectionInfo::addr
      Src: /src/redis-rs/redis/tests/support/cluster.rs:203,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/cluster.rs:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 200
    functionDepth: 15
    functionLinenumber: 200
    functionLinenumberEnd: 211
    functionName: TestClusterContext::get_ports
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 2
    functionsReached:
    - map
    - collect
    - redis::ConnectionInfo::addr
    - iter
    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:
    - RedisError::from
    - Ok
    - Some
    - retrieve_tls_certificates
    - Err
    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:
    - is_err
    - map_err
    - collect::<Result<Vec<_>, _>>
    - Error::other
    - RootCertStore::empty
    - Ok
    - bool::add
    - PrivateKeyDer::from_pem_slice
    - CertificateDer::pem_slice_iter
    - Some
    - Err
    - into
    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:
    - Sec1
    - secret_pkcs1_der
    - to_vec
    - secret_sec1_der
    - clone
    - Pkcs1
    - into
    - secret_pkcs8_der
    - Pkcs8
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/types.rs:57,1
    - Dst: RedisResult::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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/types.rs:61,1
    - Dst: RedisResult::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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/types.rs:65,1
    - Dst: RedisResult::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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/types.rs:69,1
    - Dst: RedisResult::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: RedisResult::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:
    - as_bytes
    - RedisResult::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_arg
      Src: /src/redis-rs/redis/src/types.rs:96,1
    - Dst: RedisResult::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:
    - RedisResult::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_arg
      Src: /src/redis-rs/redis/src/types.rs:121,1
    - Dst: RedisResult::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:
    - RedisResult::write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValueComparison::IFEQ
      Src: /src/redis-rs/redis/src/types.rs:233,1
    - Dst: Self::arg_to_string
      Src: /src/redis-rs/redis/src/types.rs:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - impl ToSingleRedisArg
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: ValueComparison::ifeq
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 3
    functionsReached:
    - ValueComparison::IFEQ
    - Self::arg_to_string
    linkageType: ''
    returnType: Self
    signature: 'pub fn ifeq(value: impl ToSingleRedisArg) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValueComparison::IFNE
      Src: /src/redis-rs/redis/src/types.rs:243,1
    - Dst: Self::arg_to_string
      Src: /src/redis-rs/redis/src/types.rs:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - impl ToSingleRedisArg
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: ValueComparison::ifne
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 3
    functionsReached:
    - ValueComparison::IFNE
    - Self::arg_to_string
    linkageType: ''
    returnType: Self
    signature: 'pub fn ifne(value: impl ToSingleRedisArg) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValueComparison::IFDEQ
      Src: /src/redis-rs/redis/src/types.rs:255,1
    - Dst: Self::arg_to_string
      Src: /src/redis-rs/redis/src/types.rs:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - digest
    argTypes:
    - impl ToSingleRedisArg
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: ValueComparison::ifdeq
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 3
    functionsReached:
    - ValueComparison::IFDEQ
    - Self::arg_to_string
    linkageType: ''
    returnType: Self
    signature: 'pub fn ifdeq(digest: impl ToSingleRedisArg) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValueComparison::IFDNE
      Src: /src/redis-rs/redis/src/types.rs:267,1
    - Dst: Self::arg_to_string
      Src: /src/redis-rs/redis/src/types.rs:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - digest
    argTypes:
    - impl ToSingleRedisArg
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: ValueComparison::ifdne
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 3
    functionsReached:
    - ValueComparison::IFDNE
    - Self::arg_to_string
    linkageType: ''
    returnType: Self
    signature: 'pub fn ifdne(digest: impl ToSingleRedisArg) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl combine::Parser::to_redis_args
      Src: /src/redis-rs/redis/src/types.rs:271,1
    - Dst: String::from_utf8_lossy
      Src: /src/redis-rs/redis/src/types.rs:272,1
    - Dst: into_owned
      Src: /src/redis-rs/redis/src/types.rs:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - impl ToSingleRedisArg
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: ValueComparison::arg_to_string
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - into_owned
    - impl combine::Parser::to_redis_args
    - String::from_utf8_lossy
    linkageType: ''
    returnType: String
    signature: 'fn arg_to_string(value: impl ToSingleRedisArg) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/types.rs:283,1
    - Dst: RedisResult::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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/types.rs:287,1
    - Dst: RedisResult::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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/types.rs:291,1
    - Dst: RedisResult::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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/types.rs:295,1
    - Dst: RedisResult::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:
    - impl combine::Parser::as_bytes
    - RedisResult::write_arg
    - String::as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    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:
    - next
    - Some
    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:
    - next
    - Some
    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:
    - len
    - iter
    - MapIter::Array
    - MapIter::Map
    - Some
    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:
    - len
    - into_iter
    - OwnedMapIter::Array
    - Ok
    - Value::Array
    - Err
    - OwnedMapIter::Map
    linkageType: ''
    returnType: Result
    signature: pub fn into_map_iter(self) -> Result<OwnedMapIter, Value>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:521,1
    - Dst: Self::Array
      Src: /src/redis-rs/redis/src/types.rs:521,1
    - Dst: Self::extract_error_vec
      Src: /src/redis-rs/redis/src/types.rs:521,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:522,1
    - Dst: Self::Map
      Src: /src/redis-rs/redis/src/types.rs:522,1
    - Dst: Self::extract_error_map
      Src: /src/redis-rs/redis/src/types.rs:522,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/types.rs:524,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/types.rs:524,1
    - Dst: Self::extract_error_map
      Src: /src/redis-rs/redis/src/types.rs:525,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:526,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:528,1
    - Dst: Self::Set
      Src: /src/redis-rs/redis/src/types.rs:528,1
    - Dst: Self::extract_error_vec
      Src: /src/redis-rs/redis/src/types.rs:528,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:529,1
    - Dst: Self::extract_error_vec
      Src: /src/redis-rs/redis/src/types.rs:531,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:533,1
    - Dst: into
      Src: /src/redis-rs/redis/src/types.rs:533,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:534,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 536
      start: 519
    functionDepth: 15
    functionLinenumber: 519
    functionLinenumberEnd: 536
    functionName: Value::extract_error
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::Array
    - Self::Set
    - Self::extract_error_vec
    - Ok
    - into
    - Self::extract_error_map
    - Err
    - extract_error
    - Self::Map
    - Box::new
    linkageType: ''
    returnType: RedisResult
    signature: pub fn extract_error(self) -> RedisResult<Self>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/types.rs:539,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/types.rs:539,1
    - Dst: "into_iter()\n            .map(Self::extract_error)\n            .collect::<RedisResult<Vec<_>>>"
      Src: /src/redis-rs/redis/src/types.rs:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - vec
    argTypes:
    - Vec<Self>
    constantsTouched: []
    func_position:
      end: 542
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 542
    functionName: Value::extract_error_vec
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - 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:
    - len
    - into_iter
    - impl combine::Parser::extract_error
    - Ok
    - Vec::with_capacity
    - push
    - extract_error
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn extract_error_map(map: Vec<(Self, Self)>) -> RedisResult<Vec<(Self,
      Self)>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::len
      Src: /src/redis-rs/redis/src/types.rs:554,1
    - Dst: len
      Src: /src/redis-rs/redis/src/types.rs:555,1
    - Dst: Self::len
      Src: /src/redis-rs/redis/src/types.rs:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 559
      start: 552
    functionDepth: 3
    functionLinenumber: 552
    functionLinenumberEnd: 559
    functionName: Value::is_collection_of_len
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::len
    - len
    linkageType: ''
    returnType: bool
    signature: 'fn is_collection_of_len(&self, len: usize) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 564
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 564
    functionName: Value::is_error_that_requires_action
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub(crate) fn is_error_that_requires_action(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/types.rs:572,1
    - Dst: details
      Src: /src/redis-rs/redis/src/types.rs:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 600
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 600
    functionName: Value::fmt
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - std::str::from_utf8
    - details
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:609,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:609,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/types.rs:609,1
    - Dst: Self::into
      Src: /src/redis-rs/redis/src/types.rs:609,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:610,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:610,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 612
      start: 607
    functionDepth: 9
    functionLinenumber: 607
    functionLinenumberEnd: 612
    functionName: RedisResult::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Result::map
    - from_redis_value_ref
    - Self::into
    - Ok
    - clone
    - Err
    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:
    - Result::map
    - Ok
    - from_redis_value
    - Err
    - into
    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: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/types.rs:656,1
    - Dst: RedisResult::starts_with
      Src: /src/redis-rs/redis/src/types.rs:656,1
    - Dst: RedisResult::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:
    - to_string
    - RedisResult::is_empty
    - RedisResult::splitn
    - '&str::lines'
    - RedisResult::starts_with
    - Value::SimpleString
    - next
    - HashMap::new
    - Result::to_string
    - insert
    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
    - Result::ok
    - InfoDict::find
    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:
    - Result::clone
    - Self::from_redis_value
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs:757,1
    - Dst: Value::into_sequence
      Src: /src/redis-rs/redis/src/types.rs:757,1
    - Dst: Result::len
      Src: /src/redis-rs/redis/src/types.rs:761,1
    - Dst: Result::into_iter
      Src: /src/redis-rs/redis/src/types.rs:764,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:765,1
    - Dst: Result::next
      Src: /src/redis-rs/redis/src/types.rs:765,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:765,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:766,1
    - Dst: Result::next
      Src: /src/redis-rs/redis/src/types.rs:766,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:766,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:767,1
    - Dst: Result::next
      Src: /src/redis-rs/redis/src/types.rs:767,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:767,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:768,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 773
      start: 756
    functionDepth: 3
    functionLinenumber: 756
    functionLinenumberEnd: 773
    functionName: ReplicaInfo::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Result::next
    - get_owned_inner_value
    - Result::len
    - Ok
    - Result::into_iter
    - from_redis_value
    - Option::expect
    - Value::into_sequence
    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:
    - Result::clone
    - Self::from_redis_value
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs:782,1
    - Dst: Value::into_sequence
      Src: /src/redis-rs/redis/src/types.rs:782,1
    - Dst: Result::len
      Src: /src/redis-rs/redis/src/types.rs:786,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/src/types.rs:793,1
    - Dst: Role::new_primary
      Src: /src/redis-rs/redis/src/types.rs:794,1
    - Dst: Role::new_replica
      Src: /src/redis-rs/redis/src/types.rs:795,1
    - Dst: Role::new_sentinel
      Src: /src/redis-rs/redis/src/types.rs:796,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 804
      start: 781
    functionDepth: 3
    functionLinenumber: 781
    functionLinenumberEnd: 804
    functionName: Role::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - get_owned_inner_value
    - Result::len
    - Role::new_primary
    - Role::new_replica
    - as_slice
    - Role::new_sentinel
    - Value::into_sequence
    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::len
    - Ok
    - from_redis_value
    - Option::expect
    - Self::into_iter
    - Self::next
    linkageType: ''
    returnType: Result
    signature: 'fn new_primary(values: Vec<Value>) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::len
      Src: /src/redis-rs/redis/src/types.rs:829,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/types.rs:836,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:837,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:839,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:839,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:839,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:840,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:840,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:840,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:841,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:841,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:841,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:842,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:842,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:842,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:844,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 1
    argNames:
    - values
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 850
      start: 828
    functionDepth: 3
    functionLinenumber: 828
    functionLinenumberEnd: 850
    functionName: Role::new_replica
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - Self::len
    - Ok
    - from_redis_value
    - Option::expect
    - Self::into_iter
    - Self::next
    linkageType: ''
    returnType: Result
    signature: 'fn new_replica(values: Vec<Value>) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::len
      Src: /src/redis-rs/redis/src/types.rs:853,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/types.rs:859,1
    - Dst: std::iter::Chain::nth
      Src: /src/redis-rs/redis/src/types.rs:859,1
    - Dst: expect
      Src: /src/redis-rs/redis/src/types.rs:859,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:860,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - values
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 862
      start: 852
    functionDepth: 3
    functionLinenumber: 852
    functionLinenumberEnd: 862
    functionName: Role::new_sentinel
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - Self::len
    - Ok
    - expect
    - from_redis_value
    - Self::into_iter
    - std::iter::Chain::nth
    linkageType: ''
    returnType: Result
    signature: 'fn new_sentinel(values: Vec<Value>) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisWrite::write_arg
      Src: /src/redis-rs/redis/src/types.rs:872,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:872,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - impl fmt::Display
    constantsTouched: []
    func_position:
      end: 873
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 873
    functionName: RedisWrite::write_arg_fmt
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - 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:
    - Vec::with_capacity
    - RedisWrite::writer_for_next_arg
    - 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:
    - Vec::push
    - String::into_bytes
    - to_string
    linkageType: ''
    returnType: void
    signature: 'fn write_arg_fmt(&mut self, arg: impl fmt::Display)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::push
      Src: /src/redis-rs/redis/src/types.rs:1003,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/types.rs:1003,1
    - Dst: Vec::last_mut
      Src: /src/redis-rs/redis/src/types.rs:1004,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/types.rs:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1002
    functionDepth: 17
    functionLinenumber: 1002
    functionLinenumberEnd: 1005
    functionName: Vec::writer_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Vec::push
    - Vec::last_mut
    - unwrap
    - Vec::new
    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:
    - Vec::reserve
    - impl IntoIterator<Item = usize>::into_iter
    - std::iter::Chain::count
    linkageType: ''
    returnType: void
    signature: 'fn reserve_space_for_args(&mut self, additional: impl IntoIterator<Item
      = usize>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::push
      Src: /src/redis-rs/redis/src/types.rs:1017,1
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/types.rs:1017,1
    - Dst: Vec::last_mut
      Src: /src/redis-rs/redis/src/types.rs:1018,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/types.rs:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1019
      start: 1016
    functionDepth: 17
    functionLinenumber: 1016
    functionLinenumberEnd: 1019
    functionName: Vec::bufmut_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Vec::push
    - Vec::last_mut
    - Vec::with_capacity
    - unwrap
    linkageType: ''
    returnType: impl bytes::BufMut + '_
    signature: 'fn bufmut_for_next_arg(&mut self, capacity: usize) -> impl bytes::BufMut
      + ''_'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/types.rs:1038,1
    - Dst: ToRedisArgs::write_redis_args
      Src: /src/redis-rs/redis/src/types.rs:1039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1037
    functionDepth: 15
    functionLinenumber: 1037
    functionLinenumberEnd: 1041
    functionName: ToRedisArgs::to_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - ToRedisArgs::write_redis_args
    - Vec::new
    linkageType: ''
    returnType: Vec
    signature: fn to_redis_args(&self) -> Vec<Vec<u8>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1057
    functionName: ToRedisArgs::describe_numeric_behavior
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NumericBehavior
    signature: fn describe_numeric_behavior(&self) -> NumericBehavior
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1067
    functionName: ToRedisArgs::num_of_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn num_of_args(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::make_arg_iter_ref
      Src: /src/redis-rs/redis/src/types.rs:1076,1
    - Dst: '&[Self]::iter'
      Src: /src/redis-rs/redis/src/types.rs:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - items
    - out
    argTypes:
    - '&[Self]'
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1077
      start: 1072
    functionDepth: 15
    functionLinenumber: 1072
    functionLinenumberEnd: 1077
    functionName: ToRedisArgs::write_args_from_slice
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - '&[Self]::iter'
    - Self::make_arg_iter_ref
    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:
    - '&[Self]::len'
    - num_of_args
    linkageType: ''
    returnType: bool
    signature: 'fn is_single_vec_arg(items: &[Self]) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::itoa::Buffer::new
      Src: /src/redis-rs/redis/src/types.rs:7,1
    - Dst: RedisServer::format
      Src: /src/redis-rs/redis/src/types.rs:8,1
    - Dst: RedisResult::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
    - ::itoa::Buffer::new
    - RedisResult::write_arg
    - RedisServer::format
    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: RedisResult::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:
    - TlsFilePaths::as_bytes
    - non_zero_itoa_based_to_redis_impl::get
    - ::itoa::Buffer::new
    - RedisServer::format
    - RedisResult::write_arg
    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: RedisResult::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
    - RedisServer::format
    - RedisResult::write_arg
    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: RedisResult::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
    - ::itoa::Buffer::new
    - RedisResult::write_arg
    - RedisServer::format
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::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:
    - RedisResult::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: RedisResult::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
    - String::into_bytes
    - RedisResult::write_arg
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::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:
    - RedisResult::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_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:
    - RedisResult::write_arg
    - String::as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::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'
    - RedisResult::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:
    - impl_write_redis_args_for_collection::len
    - ToRedisArgs::is_single_vec_arg
    - num_of_args
    - 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:
    - describe_numeric_behavior
    - num_of_args
    - write_redis_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:
    - impl combine::Parser::write_redis_args
    - impl_to_redis_args_for_map::len
    - 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:
    - Ok
    - Vec<T>::try_into
    linkageType: ''
    returnType: Result
    signature: 'fn vec_to_array<T, const N: usize>(items: Vec<T>,original_value: &Value,)
      -> Result<[T; N], ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromRedisValue::from_byte_slice
      Src: /src/redis-rs/redis/src/types.rs:1579,1
    - Dst: vec_to_array
      Src: /src/redis-rs/redis/src/types.rs:1580,1
    - Dst: FromRedisValue::from_redis_value_refs
      Src: /src/redis-rs/redis/src/types.rs:1590,1
    - Dst: vec_to_array
      Src: /src/redis-rs/redis/src/types.rs:1591,1
    - Dst: vec_to_array
      Src: /src/redis-rs/redis/src/types.rs:1593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1596
      start: 1577
    functionDepth: 1
    functionLinenumber: 1577
    functionLinenumberEnd: 1596
    functionName: '[T; N]::from_redis_value_ref'
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - vec_to_array
    - FromRedisValue::from_redis_value_refs
    - FromRedisValue::from_byte_slice
    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:
    - Result::clone
    - Self::from_redis_value
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[Value]::iter'
      Src: /src/redis-rs/redis/src/types.rs:1636,1
    - Dst: map
      Src: /src/redis-rs/redis/src/types.rs:1636,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/types.rs:1636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - items
    argTypes:
    - '&[Value]'
    constantsTouched: []
    func_position:
      end: 1640
      start: 1635
    functionDepth: 15
    functionLinenumber: 1635
    functionLinenumberEnd: 1640
    functionName: FromRedisValue::from_redis_value_refs
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - map
    - collect
    - '&[Value]::iter'
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_refs(items: &[Value]) -> Result<Vec<Self>, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<Value>::into_iter
      Src: /src/redis-rs/redis/src/types.rs:1645,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/types.rs:1645,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/types.rs:1645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - items
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 1649
      start: 1644
    functionDepth: 1
    functionLinenumber: 1644
    functionLinenumberEnd: 1649
    functionName: FromRedisValue::from_redis_values
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - 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:
    - Result::map
    - ok
    - Self::from_redis_value
    - Value::BulkString
    - into
    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:
    - Result::map
    - Value::BulkString
    - Self::from_redis_value
    linkageType: ''
    returnType: Result
    signature: 'fn from_byte_vec(_vec: Vec<u8>) -> Result<Vec<Self>, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/types.rs:1679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1683
      start: 1673
    functionDepth: 0
    functionLinenumber: 1673
    functionLinenumberEnd: 1683
    functionName: get_inner_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: '&Value'
    signature: 'fn get_inner_value(v: &Value) -> &Value'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1695
      start: 1685
    functionDepth: 0
    functionLinenumber: 1685
    functionLinenumberEnd: 1695
    functionName: get_owned_inner_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Value
    signature: 'fn get_owned_inner_value(v: Value) -> Value'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:12,1
    - Dst: parse::<$t>
      Src: /src/redis-rs/redis/src/types.rs:13,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:14,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/types.rs:17,1
    - Dst: parse::<$t>
      Src: /src/redis-rs/redis/src/types.rs:17,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:18,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:21,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1697
    functionDepth: 0
    functionLinenumber: 1697
    functionLinenumberEnd: 1722
    functionName: from_redis_value_for_num_internal
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - 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:
    - from_redis_value_for_num_internal
    - Self::from_redis_value_ref
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1741
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1741
    functionName: u8::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<u8, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:1744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1745
      start: 1743
    functionDepth: 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>
    - <$t>::try_from
    - Ok
    - std::str::from_utf8
    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:
    - from_redis_value_for_bignum_internal
    - Self::from_redis_value_ref
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_inner_value
      Src: /src/redis-rs/redis/src/types.rs:1825,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1827,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1828,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1831,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1833,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1840,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1842,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1847,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1848,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1851
      start: 1824
    functionDepth: 1
    functionLinenumber: 1824
    functionLinenumberEnd: 1851
    functionName: bool::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - 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:
    - Vec::as_slice
    - CString::new
    - as_bytes
    - Ok
    - get_inner_value
    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:
    - CString::new
    - Ok
    - get_owned_inner_value
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<CString, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_inner_value
      Src: /src/redis-rs/redis/src/types.rs:1881,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1883,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/types.rs:1883,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1883,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1884,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:1884,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1885,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1885,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1889,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1889,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1890,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1890,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1891,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1894
      start: 1880
    functionDepth: 1
    functionLinenumber: 1880
    functionLinenumberEnd: 1894
    functionName: String::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 2
    functionsReached:
    - to_string
    - Ok
    - std::str::from_utf8
    - get_inner_value
    - '&str::to_string'
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs:1897,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1899,1
    - Dst: Self::from_utf8
      Src: /src/redis-rs/redis/src/types.rs:1899,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1900,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:1900,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1901,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1902,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1903,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1903,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1904,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1907
      start: 1896
    functionDepth: 1
    functionLinenumber: 1896
    functionLinenumberEnd: 1907
    functionName: String::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - to_string
    - Self::from_utf8
    - get_owned_inner_value
    - Ok
    - '&str::to_string'
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:6,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:6,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:10,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1910
    functionDepth: 11
    functionLinenumber: 1910
    functionLinenumberEnd: 1927
    functionName: pointer_from_redis_value_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value
    - FromRedisValue::from_redis_value_ref
    - Result::map
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromRedisValue::from_byte_slice
      Src: /src/redis-rs/redis/src/types.rs:7,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:8,1
    - Dst: FromRedisValue::from_redis_value_refs
      Src: /src/redis-rs/redis/src/types.rs:14,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:14,1
    - Dst: FromRedisValue::from_redis_value_refs
      Src: /src/redis-rs/redis/src/types.rs:15,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:15,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:19,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis/src/types.rs:19,1
    - Dst: 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:
    - u8::push
    - FromRedisValue::from_redis_value_ref
    - Result::map
    - FromRedisValue::from_redis_value_refs
    - FromRedisValue::from_byte_slice
    - Vec::new
    - FromRedisValue::from_redis_value
    - Ok
    - Value::Map
    - FromRedisValue::from_byte_vec
    - FromRedisValue::from_redis_values
    - Err
    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:
    - Result::map_err
    - Default::default
    - from_redis_value_ref
    - get_owned_inner_value
    - Option::ok_or_else
    - collect
    - Ok
    - from_redis_value
    - Result::as_map_iter
    - Result::into_map_iter
    - map
    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:
    - Result::map_err
    - into_iter
    - get_owned_inner_value
    - Result::as_sequence
    - Option::ok_or_else
    - collect
    - iter
    - Result::into_sequence
    - from_redis_value
    - from_redis_value_ref
    - map
    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:
    - InfoDict::new
    - from_redis_value_ref
    - 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:
    - InfoDict::new
    - from_redis_value
    - Ok
    - get_owned_inner_value
    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
    - Ok
    - get_inner_value
    - Some
    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
    - Some
    - Ok
    - get_owned_inner_value
    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
    - Ok
    - get_inner_value
    - as_ref
    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:
    - into
    - Ok
    - get_owned_inner_value
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs: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: RedisResult::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:
    - uuid::Uuid::as_bytes
    - RedisResult::write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:2428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2429
      start: 2427
    functionDepth: 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:
    - impl combine::Parser::to_redis_args
    - xxh3_64
    - Vec::new
    - RedisServer::extend_from_slice
    linkageType: ''
    returnType: String
    signature: 'pub fn calculate_value_digest<T: ToRedisArgs>(value: T) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TlsFilePaths::len
      Src: /src/redis-rs/redis/src/types.rs:2472,1
    - Dst: TlsFilePaths::chars
      Src: /src/redis-rs/redis/src/types.rs:2472,1
    - Dst: all
      Src: /src/redis-rs/redis/src/types.rs:2472,1
    - Dst: is_ascii_hexdigit
      Src: /src/redis-rs/redis/src/types.rs:2472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 2473
      start: 2471
    functionDepth: 16
    functionLinenumber: 2471
    functionLinenumberEnd: 2473
    functionName: is_valid_16_bytes_hex_digest
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::len
    - all
    - TlsFilePaths::chars
    - is_ascii_hexdigit
    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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/types.rs:2518,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/types.rs:2519,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/types.rs:2520,1
    - Dst: RedisResult::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:
    - RedisResult::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:
    - TlsFilePaths::to_string
    - TlsFilePaths::as_ref
    - ValueType::Unknown
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: T) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs: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:
    - Ok
    - TlsFilePaths::into
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs: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:
    - Ok
    - TlsFilePaths::into
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 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: RedisResult::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
    - remove
    - RedisResult::additive
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn update_with_request(&mut self,action: SubscriptionAction,args:
      impl Iterator<Item = Vec<u8>>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 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
    - impl Clone + ExactSizeIterator::next
    - Cmd::args_iter
    - to_vec
    - Option::eq_ignore_ascii_case
    - impl Clone + ExactSizeIterator::filter_map
    - Some
    - str::from_utf8
    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: RedisResult::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: RedisResult::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: RedisResult::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:
    - crate::pipe
    - RedisResult::cmd
    - iter
    - is_empty
    - Cmd::arg
    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:
    - redis::Cmd::arg
    - update_with_cmd
    - pipe
    - get_subscription_pipeline
    - Cmd::arg
    - SubscriptionTracker::default
    - '&mut Cmd::cmd'
    - Pipeline::cmd
    - cmd
    - '&mut Cmd::arg'
    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:
    - redis::Cmd::arg
    - update_with_cmd
    - pipe
    - get_subscription_pipeline
    - Cmd::arg
    - SubscriptionTracker::default
    - Pipeline::cmd
    - cmd
    - '&mut Cmd::arg'
    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:
    - redis::Cmd::arg
    - update_with_cmd
    - get_subscription_pipeline
    - Cmd::arg
    - SubscriptionTracker::default
    - Pipeline::cmd
    - cmd
    - pipe
    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:
    - RedisResult::check_connection
    - Ok
    - RedisResult::is_open
    - impl_manage_connection::get_connection
    - Err
    - errors::closed_connection_error
    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: next
      Src: /src/redis-rs/redis/src/cmd.rs:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 100
    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:120,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:121,1
    - Dst: impl combine::Parser::map_err
      Src: /src/redis-rs/redis/src/cmd.rs:121,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cmd.rs:121,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:128,1
    - Dst: get_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:130,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cmd.rs:128,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:131,1
    - Dst: from_redis_value::<(u64, _)>
      Src: /src/redis-rs/redis/src/cmd.rs:131,1
    - Dst: T::from_each_redis_values
      Src: /src/redis-rs/redis/src/cmd.rs:133,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:134,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cmd.rs:134,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:137,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 114
    functionDepth: 4
    functionLinenumber: 114
    functionLinenumberEnd: 140
    functionName: CheckedIter::next
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - impl combine::Parser::map_err
    - from_redis_value::<(u64, _)>
    - and_then
    - RedisResult::into_iter
    - get_packed_command
    - Ok
    - next
    - Some
    - Err
    - req_packed_command
    - T::from_each_redis_values
    - into
    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:176,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:177,1
    - Dst: Result::map_err
      Src: /src/redis-rs/redis/src/cmd.rs:177,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cmd.rs:177,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:184,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cmd.rs:184,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:188,1
    - Dst: from_redis_value::<(u64, _)>
      Src: /src/redis-rs/redis/src/cmd.rs:188,1
    - Dst: T::from_each_redis_values
      Src: /src/redis-rs/redis/src/cmd.rs:190,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:191,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cmd.rs:191,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:194,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 197
    functionName: AsyncIterInner::next_item
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Result::map_err
    - from_redis_value::<(u64, _)>
    - and_then
    - RedisResult::into_iter
    - Ok
    - next
    - Some
    - Err
    - req_packed_command
    - T::from_each_redis_values
    - into
    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:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 220
    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:228,1
    - Dst: std::mem::replace
      Src: /src/redis-rs/redis/src/cmd.rs:229,1
    - Dst: next_item
      Src: /src/redis-rs/redis/src/cmd.rs:233,1
    - Dst: IterOrFuture::Future
      Src: /src/redis-rs/redis/src/cmd.rs:236,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cmd.rs:236,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/cmd.rs:237,1
    - Dst: RedisServer::poll_next
      Src: /src/redis-rs/redis/src/cmd.rs:237,1
    - Dst: as_mut
      Src: /src/redis-rs/redis/src/cmd.rs:239,1
    - Dst: poll
      Src: /src/redis-rs/redis/src/cmd.rs:239,1
    - Dst: IterOrFuture::Future
      Src: /src/redis-rs/redis/src/cmd.rs:241,1
    - Dst: IterOrFuture::Iter
      Src: /src/redis-rs/redis/src/cmd.rs:245,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cmd.rs:247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 252
      start: 227
    functionDepth: 15
    functionLinenumber: 227
    functionLinenumberEnd: 252
    functionName: AsyncIter::poll_next
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - poll
    - Pin::new
    - next_item
    - IterOrFuture::Future
    - Box::pin
    - as_mut
    - RedisServer::poll_next
    - IterOrFuture::Iter
    - Poll::Ready
    - std::mem::replace
    - AsyncIter::get_mut
    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: 274
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 274
    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:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 279
    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:285,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:285,1
    - Dst: bulklen
      Src: /src/redis-rs/redis/src/cmd.rs:287,1
    - Dst: countdigits
      Src: /src/redis-rs/redis/src/cmd.rs:288,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - args
    - cursor
    argTypes:
    - I
    - u64
    constantsTouched: []
    func_position:
      end: 293
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 293
    functionName: args_len
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - len
    - countdigits
    - bulklen
    linkageType: ''
    returnType: usize
    signature: 'fn args_len<''a, I>(args: I, cursor: u64) -> usizewhereI: IntoIterator<Item
      = Arg<&''a [u8]>> + ExactSizeIterator,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: args_len
      Src: /src/redis-rs/redis/src/cmd.rs:296,1
    - Dst: Cmd::args_iter
      Src: /src/redis-rs/redis/src/cmd.rs:296,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cmd.rs:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 4
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: cmd_len
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::args_iter
    - unwrap_or
    - args_len
    linkageType: ''
    returnType: usize
    signature: 'pub(crate) fn cmd_len(cmd: &Cmd) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cmd.rs:303,1
    - Dst: write_command_to_vec
      Src: /src/redis-rs/redis/src/cmd.rs:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - args
    - cursor
    argTypes:
    - I
    - u64
    constantsTouched: []
    func_position:
      end: 306
      start: 299
    functionDepth: 15
    functionLinenumber: 299
    functionLinenumberEnd: 306
    functionName: encode_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - write_command_to_vec
    - Vec::new
    linkageType: ''
    returnType: Vec
    signature: 'fn encode_command<''a, I>(args: I, cursor: u64) -> Vec<u8>whereI:
      IntoIterator<Item = Arg<&''a [u8]>> + Clone + ExactSizeIterator,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: args_len
      Src: /src/redis-rs/redis/src/cmd.rs:312,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cmd.rs:312,1
    - Dst: Cmd::reserve
      Src: /src/redis-rs/redis/src/cmd.rs:314,1
    - Dst: write_command
      Src: /src/redis-rs/redis/src/cmd.rs:316,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - cmd
    - args
    - cursor
    argTypes:
    - '&mut Vec<u8>'
    - I
    - u64
    constantsTouched: []
    func_position:
      end: 317
      start: 308
    functionDepth: 4
    functionLinenumber: 308
    functionLinenumberEnd: 317
    functionName: write_command_to_vec
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 1
    functionsReached:
    - write_command
    - io::Result::unwrap
    - clone
    - Cmd::reserve
    - args_len
    linkageType: ''
    returnType: void
    signature: 'fn write_command_to_vec<''a, I>(cmd: &mut Vec<u8>, args: I, cursor:
      u64)whereI: IntoIterator<Item = Arg<&''a [u8]>> + Clone + ExactSizeIterator,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::itoa::Buffer::new
      Src: /src/redis-rs/redis/src/cmd.rs:323,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:325,1
    - Dst: RedisServer::format
      Src: /src/redis-rs/redis/src/cmd.rs:326,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:326,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:327,1
    - Dst: TlsFilePaths::as_bytes
      Src: /src/redis-rs/redis/src/cmd.rs:327,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:328,1
    - Dst: itoa::Buffer::new
      Src: /src/redis-rs/redis/src/cmd.rs:330,1
    - Dst: RedisServer::format
      Src: /src/redis-rs/redis/src/cmd.rs:333,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/cmd.rs:333,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:337,1
    - Dst: RedisServer::format
      Src: /src/redis-rs/redis/src/cmd.rs:338,1
    - Dst: Vec::len
      Src: /src/redis-rs/redis/src/cmd.rs:338,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:339,1
    - Dst: TlsFilePaths::as_bytes
      Src: /src/redis-rs/redis/src/cmd.rs:339,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:340,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:342,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:343,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:345,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 3
    argNames:
    - cmd
    - args
    - cursor
    argTypes:
    - '&mut (impl ?Sized + Write)'
    - I
    - u64
    constantsTouched: []
    func_position:
      end: 346
      start: 319
    functionDepth: 3
    functionLinenumber: 319
    functionLinenumberEnd: 346
    functionName: write_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 1
    functionsReached:
    - TlsFilePaths::as_bytes
    - len
    - as_bytes
    - Cmd::write_all
    - ::itoa::Buffer::new
    - Ok
    - Vec::len
    - RedisServer::format
    - 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:350,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cmd.rs:351,1
    - Dst: Arg::Simple
      Src: /src/redis-rs/redis/src/cmd.rs:351,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 352
      start: 349
    functionDepth: 20
    functionLinenumber: 349
    functionLinenumberEnd: 352
    functionName: Cmd::write_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Arg::Simple
    - len
    - push
    - 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:355,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cmd.rs:356,1
    - Dst: Arg::Simple
      Src: /src/redis-rs/redis/src/cmd.rs:356,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - impl fmt::Display
    constantsTouched: []
    func_position:
      end: 357
      start: 354
    functionDepth: 20
    functionLinenumber: 354
    functionLinenumberEnd: 357
    functionName: Cmd::write_arg_fmt
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - Arg::Simple
    - 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:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 378
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 378
    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:387,1
    - Dst: reserve
      Src: /src/redis-rs/redis/src/cmd.rs:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - additional
    argTypes:
    - impl IntoIterator<Item = usize>
    constantsTouched: []
    func_position:
      end: 389
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 389
    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:393,1
    - Dst: CmdBufferedArgGuard
      Src: /src/redis-rs/redis/src/cmd.rs:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 433
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 433
    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:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 439
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 439
    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: 480
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 480
    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:485,1
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/cmd.rs:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arg_count
    - size_of_data
    argTypes:
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 492
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 492
    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:498,1
    - Dst: capacity
      Src: /src/redis-rs/redis/src/cmd.rs:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 499
    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:520,1
    - Dst: clear
      Src: /src/redis-rs/redis/src/cmd.rs:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 528
      start: 519
    functionDepth: 16
    functionLinenumber: 519
    functionLinenumberEnd: 528
    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:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 22
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: Cmd::arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 162
    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:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 554
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 554
    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:575,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cmd.rs:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 578
      start: 574
    functionDepth: 20
    functionLinenumber: 574
    functionLinenumberEnd: 578
    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:587,1
    - Dst: Cmd::is_empty
      Src: /src/redis-rs/redis/src/cmd.rs:588,1
    - Dst: Cmd::write_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 593
      start: 586
    functionDepth: 16
    functionLinenumber: 586
    functionLinenumberEnd: 593
    functionName: Cmd::get_packed_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 11
    functionsReached:
    - Cmd::is_empty
    - Cmd::write_packed_command
    - Vec::new
    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:604,1
    - Dst: Cmd::args_iter
      Src: /src/redis-rs/redis/src/cmd.rs:604,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cmd.rs:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dst
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 605
      start: 603
    functionDepth: 5
    functionLinenumber: 603
    functionLinenumberEnd: 605
    functionName: Cmd::write_packed_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 1
    functionsReached:
    - Cmd::args_iter
    - unwrap_or
    - write_command_to_vec
    linkageType: ''
    returnType: void
    signature: 'pub fn write_packed_command(&self, dst: &mut Vec<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_command
      Src: /src/redis-rs/redis/src/cmd.rs:608,1
    - Dst: Cmd::args_iter
      Src: /src/redis-rs/redis/src/cmd.rs:608,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cmd.rs:608,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 609
      start: 607
    functionDepth: 4
    functionLinenumber: 607
    functionLinenumberEnd: 609
    functionName: Cmd::write_packed_command_preallocated
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::args_iter
    - io::Result::unwrap
    - unwrap_or
    - write_command
    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:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 615
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 615
    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:622,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:623,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/cmd.rs:623,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/cmd.rs:623,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cmd.rs:624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 626
      start: 621
    functionDepth: 14
    functionLinenumber: 621
    functionLinenumberEnd: 626
    functionName: Cmd::query
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 20
    functionsReached:
    - types::from_redis_value
    - Err
    - Ok
    - '&mut dyn ConnectionLike::req_command'
    - extract_error
    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:635,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:636,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/cmd.rs:636,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/cmd.rs:636,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut impl crate::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 637
      start: 631
    functionDepth: 14
    functionLinenumber: 631
    functionLinenumberEnd: 637
    functionName: Cmd::query_async
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 25
    functionsReached:
    - types::from_redis_value
    - extract_error
    - Ok
    - '&mut impl crate::aio::ConnectionLike::req_packed_command'
    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:645,1
    - Dst: from_redis_value::<(u64, _)>
      Src: /src/redis-rs/redis/src/cmd.rs:646,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/cmd.rs:649,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:652,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:654,1
    - Dst: T::from_each_redis_values
      Src: /src/redis-rs/redis/src/cmd.rs:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - value
    argTypes:
    - crate::Value
    constantsTouched: []
    func_position:
      end: 655
      start: 641
    functionDepth: 11
    functionLinenumber: 641
    functionLinenumberEnd: 655
    functionName: Cmd::set_cursor_and_get_batch
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - impl combine::Parser::looks_like_cursor
    - types::from_redis_value
    - from_redis_value::<(u64, _)>
    - Ok
    - Some
    - 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:676,1
    - Dst: Cmd::set_cursor_and_get_batch
      Src: /src/redis-rs/redis/src/cmd.rs:678,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:680,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 687
      start: 672
    functionDepth: 12
    functionLinenumber: 672
    functionLinenumberEnd: 687
    functionName: Cmd::iter
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - '&mut dyn ConnectionLike::req_command'
    - Cmd::set_cursor_and_get_batch
    - RedisResult::into_iter
    - Ok
    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:710,1
    - Dst: Cmd::set_cursor_and_get_batch
      Src: /src/redis-rs/redis/src/cmd.rs:712,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:714,1
    - Dst: IterOrFuture::Iter
      Src: /src/redis-rs/redis/src/cmd.rs:715,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:716,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&''a mut (dyn AsyncConnection + Send)'
    constantsTouched: []
    func_position:
      end: 721
      start: 706
    functionDepth: 18
    functionLinenumber: 706
    functionLinenumberEnd: 721
    functionName: Cmd::iter_async
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - '&''a mut (dyn AsyncConnection + Send)::req_packed_command'
    - RedisResult::into_iter
    - Ok
    - IterOrFuture::Iter
    - Cmd::set_cursor_and_get_batch
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn iter_async<''a, T: FromRedisValue + ''a>(mut self,con:
      &''a mut (dyn AsyncConnection + Send),) -> RedisResult<AsyncIter<''a, T>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: query::<()>
      Src: /src/redis-rs/redis/src/cmd.rs:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 730
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 730
    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:738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut impl crate::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 739
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 739
    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:744,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cmd.rs:744,1
    - Dst: Arg::Simple
      Src: /src/redis-rs/redis/src/cmd.rs:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 753
      start: 742
    functionDepth: 16
    functionLinenumber: 742
    functionLinenumberEnd: 753
    functionName: Cmd::args_iter
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 4
    functionsReached:
    - map
    - Arg::Simple
    - iter
    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: 788
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 788
    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: 794
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 794
    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:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - command_cache_config
    argTypes:
    - CommandCacheConfig
    constantsTouched: []
    func_position:
      end: 802
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 802
    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: 808
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 808
    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:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 812
      start: 810
    functionDepth: 2
    functionLinenumber: 810
    functionLinenumberEnd: 812
    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:825,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 828
      start: 824
    functionDepth: 23
    functionLinenumber: 824
    functionLinenumberEnd: 828
    functionName: cmd
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 183
    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:849,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cmd.rs:849,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cmd.rs:849,1
    - Dst: Arg::Simple
      Src: /src/redis-rs/redis/src/cmd.rs:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - args
    argTypes:
    - '&[Vec<u8>]'
    constantsTouched: []
    func_position:
      end: 850
      start: 848
    functionDepth: 32
    functionLinenumber: 848
    functionLinenumberEnd: 850
    functionName: pack_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - encode_command
    - Arg::Simple
    - map
    - iter
    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:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 855
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 855
    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:864,1
    - Dst: impl Clone + ExactSizeIterator::map
      Src: /src/redis-rs/redis/src/cmd.rs:864,1
    - Dst: String::from_utf8
      Src: /src/redis-rs/redis/src/cmd.rs:866,1
    - Dst: Vec::to_vec
      Src: /src/redis-rs/redis/src/cmd.rs:866,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:866,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/cmd.rs:867,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cmd.rs:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 870
      start: 863
    functionDepth: 32
    functionLinenumber: 863
    functionLinenumberEnd: 870
    functionName: tests::args_iter_to_str
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Vec::to_vec
    - impl Clone + ExactSizeIterator::map
    - Cmd::args_iter
    - collect
    - String::from_utf8
    - unwrap
    - '&str::to_string'
    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:873,1
    - Dst: args_iter().collect::<Vec<_>>
      Src: /src/redis-rs/redis/src/cmd.rs:873,1
    - Dst: '&Cmd::args_iter'
      Src: /src/redis-rs/redis/src/cmd.rs:874,1
    - Dst: args_iter().collect::<Vec<_>>
      Src: /src/redis-rs/redis/src/cmd.rs:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - '&Cmd'
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 882
      start: 872
    functionDepth: 32
    functionLinenumber: 872
    functionLinenumberEnd: 882
    functionName: tests::assert_arg_equality
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - args_iter().collect::<Vec<_>>
    - '&Cmd::args_iter'
    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:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - Cmd
    - Cmd
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 33
    functionLinenumber: 884
    functionLinenumberEnd: 887
    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:892,1
    - Dst: Cmd::write_arg_fmt
      Src: /src/redis-rs/redis/src/cmd.rs:893,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:894,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cmd.rs:894,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:896,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:905,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cmd.rs:905,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cmd.rs:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 907
      start: 890
    functionDepth: 24
    functionLinenumber: 890
    functionLinenumberEnd: 907
    functionName: tests::test_cmd_packed_command_simple_args
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - map
    - into_iter
    - collect
    - Cmd::arg
    - Cmd::get_packed_command
    - Cmd::write_arg_fmt
    - cmd
    - '&mut Cmd::arg'
    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:912,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:913,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cmd.rs:913,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cmd.rs:913,1
    - Dst: cursor_arg
      Src: /src/redis-rs/redis/src/cmd.rs:913,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:915,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:924,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cmd.rs:924,1
    - Dst: chain
      Src: /src/redis-rs/redis/src/cmd.rs:924,1
    - Dst: std::iter::once
      Src: /src/redis-rs/redis/src/cmd.rs:927,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cmd.rs:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 930
      start: 910
    functionDepth: 24
    functionLinenumber: 910
    functionLinenumberEnd: 930
    functionName: tests::test_cmd_packed_command_with_cursor
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - map
    - std::iter::once
    - into_iter
    - cursor_arg
    - collect
    - arg
    - Cmd::arg
    - Cmd::get_packed_command
    - chain
    - cmd
    - '&mut Cmd::arg'
    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:934,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:935,1
    - Dst: '&mut Cmd::cursor_arg'
      Src: /src/redis-rs/redis/src/cmd.rs:935,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/cmd.rs:935,1
    - Dst: '&mut Cmd::clear'
      Src: /src/redis-rs/redis/src/cmd.rs:935,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:947,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 948
      start: 933
    functionDepth: 24
    functionLinenumber: 933
    functionLinenumberEnd: 948
    functionName: tests::test_cmd_clean
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::new
    - '&mut Cmd::clear'
    - '&mut Cmd::set_no_response'
    - assert_practical_equivalent
    - Cmd::arg
    - '&mut Cmd::cursor_arg'
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_cmd_clean()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cmd.rs:953,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:954,1
    - Dst: '&mut Cmd::cursor_arg'
      Src: /src/redis-rs/redis/src/cmd.rs:954,1
    - Dst: '&mut Cmd::set_cache_config'
      Src: /src/redis-rs/redis/src/cmd.rs:954,1
    - Dst: crate::CommandCacheConfig::default
      Src: /src/redis-rs/redis/src/cmd.rs:956,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/cmd.rs:954,1
    - Dst: '&mut Cmd::clear'
      Src: /src/redis-rs/redis/src/cmd.rs:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 968
      start: 952
    functionDepth: 24
    functionLinenumber: 952
    functionLinenumberEnd: 968
    functionName: tests::test_cmd_clean_cache_aio
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - crate::CommandCacheConfig::default
    - '&mut Cmd::set_cache_config'
    - '&mut Cmd::clear'
    - '&mut Cmd::set_no_response'
    - Cmd::arg
    - '&mut Cmd::cursor_arg'
    - cmd
    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:974,1
    - Dst: Cmd::writer_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:976,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:977,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:977,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:978,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:978,1
    - Dst: impl Write + '_::flush
      Src: /src/redis-rs/redis/src/cmd.rs:979,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:979,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:982,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:983,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 986
      start: 971
    functionDepth: 21
    functionLinenumber: 971
    functionLinenumberEnd: 986
    functionName: tests::test_cmd_writer_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::new
    - impl Write + '_::flush
    - impl Write + '_::write_all
    - Poll::unwrap
    - assert_practical_equivalent
    - unwrap
    - Cmd::write_arg
    - Cmd::writer_for_next_arg
    linkageType: ''
    returnType: void
    signature: fn test_cmd_writer_for_next_arg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:992,1
    - Dst: Cmd::writer_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:994,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:995,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:995,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:996,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:996,1
    - Dst: impl Write + '_::flush
      Src: /src/redis-rs/redis/src/cmd.rs:997,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:997,1
    - Dst: Cmd::writer_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1000,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:1001,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1001,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:1002,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1002,1
    - Dst: impl Write + '_::flush
      Src: /src/redis-rs/redis/src/cmd.rs:1003,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1003,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1006,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1007,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1008,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 991
    functionDepth: 21
    functionLinenumber: 991
    functionLinenumberEnd: 1011
    functionName: tests::test_cmd_writer_for_next_arg_multiple
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::new
    - impl Write + '_::flush
    - impl Write + '_::write_all
    - Poll::unwrap
    - assert_practical_equivalent
    - unwrap
    - Cmd::write_arg
    - Cmd::writer_for_next_arg
    linkageType: ''
    returnType: void
    signature: fn test_cmd_writer_for_next_arg_multiple()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1016,1
    - Dst: Cmd::writer_for_next_arg
      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: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1015
    functionDepth: 21
    functionLinenumber: 1015
    functionLinenumberEnd: 1026
    functionName: tests::test_cmd_writer_for_next_arg_empty
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::new
    - impl Write + '_::flush
    - Poll::unwrap
    - assert_practical_equivalent
    - Cmd::write_arg
    - Cmd::writer_for_next_arg
    linkageType: ''
    returnType: void
    signature: fn test_cmd_writer_for_next_arg_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1033,1
    - Dst: Cmd::bufmut_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1035,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1036,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1037,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1040,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1041,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1032
    functionDepth: 21
    functionLinenumber: 1032
    functionLinenumberEnd: 1044
    functionName: tests::test_cmd_bufmut_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::new
    - Cmd::bufmut_for_next_arg
    - assert_practical_equivalent
    - Cmd::write_arg
    - impl bytes::BufMut + '_::put_slice
    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:1051,1
    - Dst: Cmd::bufmut_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1053,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1054,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1055,1
    - Dst: Cmd::bufmut_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1058,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1059,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1060,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1063,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1064,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1065,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1050
    functionDepth: 21
    functionLinenumber: 1050
    functionLinenumberEnd: 1068
    functionName: tests::test_cmd_bufmut_for_next_arg_multiple
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::new
    - Cmd::bufmut_for_next_arg
    - assert_practical_equivalent
    - Cmd::write_arg
    - impl bytes::BufMut + '_::put_slice
    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:1074,1
    - Dst: Cmd::bufmut_for_next_arg
      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: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1073
    functionDepth: 21
    functionLinenumber: 1073
    functionLinenumberEnd: 1083
    functionName: tests::test_cmd_bufmut_for_next_arg_empty
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::new
    - Cmd::write_arg
    - assert_practical_equivalent
    - 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:1088,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cmd.rs:1091,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cmd.rs:1095,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cmd.rs:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1100
    functionName: tests::test_cmd_arg_idx
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::new
    - arg
    linkageType: ''
    returnType: void
    signature: fn test_cmd_arg_idx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/macros.rs:2,1
    - Dst: ::std::convert::From::from
      Src: /src/redis-rs/redis/src/macros.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 7
    functionName: fail
    functionSourceFile: /src/redis-rs/redis/src/macros.rs
    functionUses: 0
    functionsReached:
    - 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:400,1
    - Dst: PipelineSink::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:402,1
    - Dst: stream::poll_fn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:408,1
    - Dst: "(\n        PendingRequest::poll_recv"
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:408,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:408,1
    - Dst: forward
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:408,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - sink_stream
    - push_sender
    - cache_manager
    argTypes:
    - T
    - Option<Arc<dyn AsyncPushSender>>
    - Option<CacheManager>
    constantsTouched: []
    func_position:
      end: 413
      start: 389
    functionDepth: 26
    functionLinenumber: 389
    functionLinenumberEnd: 413
    functionName: Pipeline::new
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 4
    functionsReached:
    - mpsc::channel
    - "(\n        PendingRequest::poll_recv"
    - forward
    - stream::poll_fn
    - PipelineSink::new
    - map
    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>,) -> (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:
    - len
    - encode_pipeline
    - '&mut dyn ConnectionLike::supports_pipelining'
    - Pipeline::complete_request
    - fail
    - '&mut dyn ConnectionLike::req_packed_commands'
    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:
    - len
    - '&mut impl crate::aio::ConnectionLike::req_packed_commands'
    - Pipeline::complete_request
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn query_async<T: FromRedisValue>(&self,con: &mut impl crate::aio::ConnectionLike,)
      -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: query::<()>
      Src: /src/redis-rs/redis/src/pipeline.rs:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: Pipeline::exec
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 3
    functionsReached:
    - query::<()>
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn exec(&self, con: &mut dyn ConnectionLike) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: query_async::<()>
      Src: /src/redis-rs/redis/src/pipeline.rs:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut impl crate::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: Pipeline::exec_async
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 2
    functionsReached:
    - query_async::<()>
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn exec_async(&self, con: &mut impl crate::aio::ConnectionLike)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pipeline::is_transaction
      Src: /src/redis-rs/redis/src/pipeline.rs:239,1
    - Dst: pop
      Src: /src/redis-rs/redis/src/pipeline.rs:240,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/pipeline.rs:242,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/pipeline.rs:242,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/pipeline.rs:246,1
    - Dst: into
      Src: /src/redis-rs/redis/src/pipeline.rs:246,1
    - Dst: Pipeline::compose_response
      Src: /src/redis-rs/redis/src/pipeline.rs:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - response
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 258
      start: 238
    functionDepth: 30
    functionLinenumber: 238
    functionLinenumberEnd: 258
    functionName: Pipeline::complete_request
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 2
    functionsReached:
    - pop
    - types::from_redis_value
    - Ok
    - Pipeline::compose_response
    - Err
    - into
    - Pipeline::is_transaction
    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:
    - RedisResult::iter
    - sum
    - Cmd::write_packed_command_preallocated
    - RedisResult::write_packed_command_preallocated
    - cmd::cmd
    - cmd::cmd_len
    - '&mut Vec<u8>::reserve'
    - map
    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: RedisResult::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:
    - len
    - contains
    - RedisResult::is_empty
    - into_iter
    - implement_pipeline_commands::get_last_command
    - Ok
    - Value::Array
    - implement_pipeline_commands::filter_ignored_results
    - Some
    - clone
    - clear
    - extract_error
    - filter_map
    - collect
    - insert
    - then
    - enumerate
    - iter
    - cmd::cmd
    - push
    - Cmd::arg
    - Err
    - implement_pipeline_commands::add_command
    - crate::RedisError::pipeline
    - types::from_redis_value
    - Self::new
    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: RedisResult::cmd
      Src: /src/redis-rs/redis/src/pipeline.rs:434,1
    - Dst: redis::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:
    - RedisResult::cmd
    - redis::Cmd::cmd
    - ignore
    - redis::Cmd::ignore
    - cmd::cmd
    - pipe
    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: RedisResult::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:
    - RedisResult::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
    - compose_response::<Vec<Value>>
    - test_pipe
    - unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_passes_errors_from_ignored_commands()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_pipe
      Src: /src/redis-rs/redis/src/pipeline.rs:474,1
    - Dst: RedisResult::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>>>"
    - RedisResult::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:52,1
    - Dst: T::into_connection_info
      Src: /src/redis-rs/redis/src/client.rs:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - params
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: Client::open
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 20
    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:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    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:72,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/client.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    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:163,1
    - Dst: tls::inner_build_with_tls
      Src: /src/redis-rs/redis/src/client.rs:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - conn_info
    - tls_certs
    argTypes:
    - C
    - TlsCertificates
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 4
    functionLinenumber: 159
    functionLinenumberEnd: 166
    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:202,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/client.rs:204,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/client.rs:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 198
    functionDepth: 32
    functionLinenumber: 198
    functionLinenumberEnd: 207
    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:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 32
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: AsyncConnectionConfig::new
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 9
    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: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    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: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    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:259,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/client.rs:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sender
    argTypes:
    - impl AsyncPushSender
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: AsyncConnectionConfig::set_push_sender
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - AsyncConnectionConfig::set_push_sender_internal
    - std::sync::Arc::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_push_sender(self, sender: impl AsyncPushSender) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/client.rs:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sender
    argTypes:
    - std::sync::Arc<dyn AsyncPushSender>
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 268
    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:273,1
    - Dst: Cache::Config
      Src: /src/redis-rs/redis/src/client.rs:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cache_config
    argTypes:
    - CacheConfig
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: AsyncConnectionConfig::set_cache_config
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Cache::Config
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_cache_config(mut self, cache_config: CacheConfig) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/client.rs:282,1
    - Dst: Cache::Manager
      Src: /src/redis-rs/redis/src/client.rs:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cache_manager
    argTypes:
    - CacheManager
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: AsyncConnectionConfig::set_cache_manager
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Cache::Manager
    - Some
    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:290,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/client.rs:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dns_resolver
    argTypes:
    - impl AsyncDNSResolver
    constantsTouched: []
    func_position:
      end: 291
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 291
    functionName: AsyncConnectionConfig::set_dns_resolver
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - AsyncConnectionConfig::set_dns_resolver_internal
    - std::sync::Arc::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_dns_resolver(self, dns_resolver: impl AsyncDNSResolver)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/client.rs:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dns_resolver
    argTypes:
    - std::sync::Arc<dyn AsyncDNSResolver>
    constantsTouched: []
    func_position:
      end: 299
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 299
    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: Client::get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/src/client.rs:313,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/client.rs:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 33
    functionLinenumber: 310
    functionLinenumberEnd: 315
    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:324,1
    - Dst: get_multiplexed_async_connection_inner_with_timeout::<crate::aio::tokio::Tokio>
      Src: /src/redis-rs/redis/src/client.rs:326,1
    - Dst: get_multiplexed_async_connection_inner_with_timeout::<crate::aio::smol::Smol>
      Src: /src/redis-rs/redis/src/client.rs:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&AsyncConnectionConfig'
    constantsTouched: []
    func_position:
      end: 340
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 340
    functionName: Client::get_multiplexed_async_connection_with_config
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 1
    functionsReached:
    - get_multiplexed_async_connection_inner_with_timeout::<crate::aio::smol::Smol>
    - Runtime::locate
    - 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:362,1
    - Dst: Client::clone
      Src: /src/redis-rs/redis/src/client.rs:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 361
    functionDepth: 26
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: Client::get_connection_manager
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Client::clone
    - crate::aio::ConnectionManager::new
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn get_connection_manager(&self) -> RedisResult<crate::aio::ConnectionManager>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::aio::ConnectionManager::new_with_config
      Src: /src/redis-rs/redis/src/client.rs:388,1
    - Dst: Client::clone
      Src: /src/redis-rs/redis/src/client.rs:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - config
    argTypes:
    - crate::aio::ConnectionManagerConfig
    constantsTouched: []
    func_position:
      end: 389
      start: 384
    functionDepth: 26
    functionLinenumber: 384
    functionLinenumberEnd: 389
    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:400,1
    - Dst: get_multiplexed_async_connection_inner::<T>
      Src: /src/redis-rs/redis/src/client.rs:402,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/client.rs:406,1
    - Dst: get_multiplexed_async_connection_inner::<T>
      Src: /src/redis-rs/redis/src/client.rs:406,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/client.rs:412,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/client.rs:413,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/client.rs:414,1
    - Dst: into
      Src: /src/redis-rs/redis/src/client.rs:414,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - config
    - rt
    argTypes:
    - '&AsyncConnectionConfig'
    - Runtime
    constantsTouched: []
    func_position:
      end: 416
      start: 391
    functionDepth: 19
    functionLinenumber: 391
    functionLinenumberEnd: 416
    functionName: Client::get_multiplexed_async_connection_inner_with_timeout
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - get_multiplexed_async_connection_inner::<T>
    - TcpListener::timeout
    - Ok
    - Err
    - into
    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:425,1
    - Dst: T::spawn
      Src: /src/redis-rs/redis/src/client.rs:428,1
    - Dst: bool::set_task_handle
      Src: /src/redis-rs/redis/src/client.rs:429,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/client.rs:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&AsyncConnectionConfig'
    constantsTouched: []
    func_position:
      end: 431
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 431
    functionName: Client::get_multiplexed_async_connection_inner
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - T::spawn
    - bool::set_task_handle
    - 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:443,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/client.rs:443,1
    - Dst: get_simple_async_connection::<T>
      Src: /src/redis-rs/redis/src/client.rs:447,1
    - Dst: crate::aio::MultiplexedConnection::new_with_config
      Src: /src/redis-rs/redis/src/client.rs:448,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/client.rs:451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&AsyncConnectionConfig'
    constantsTouched: []
    func_position:
      end: 454
      start: 433
    functionDepth: 26
    functionLinenumber: 433
    functionLinenumberEnd: 454
    functionName: Client::create_multiplexed_async_connection_inner
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - as_deref
    - Self::clone
    - unwrap_or
    - get_simple_async_connection::<T>
    - crate::aio::MultiplexedConnection::new_with_config
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn create_multiplexed_async_connection_inner<T>(&self,config:
      &AsyncConnectionConfig,) -> RedisResult<(crate::aio::MultiplexedConnection,impl
      std::future::Future<Output = ()> + ''static,)>whereT: crate::aio::RedisRuntime,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/client.rs:460,1
    - Dst: get_simple_async_connection::<crate::aio::tokio::Tokio>
      Src: /src/redis-rs/redis/src/client.rs:463,1
    - Dst: get_simple_async_connection::<crate::aio::smol::Smol>
      Src: /src/redis-rs/redis/src/client.rs:469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - dns_resolver
    argTypes:
    - '&dyn AsyncDNSResolver'
    constantsTouched: []
    func_position:
      end: 473
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 473
    functionName: Client::get_simple_async_connection_dynamically
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - get_simple_async_connection::<crate::aio::tokio::Tokio>
    - Runtime::locate
    - 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:482,1
    - Dst: crate::aio::connect_simple::<T>
      Src: /src/redis-rs/redis/src/client.rs:483,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/client.rs:483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - dns_resolver
    argTypes:
    - '&dyn AsyncDNSResolver'
    constantsTouched: []
    func_position:
      end: 487
      start: 475
    functionDepth: 27
    functionLinenumber: 475
    functionLinenumberEnd: 487
    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: 492
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 492
    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:498,1
    - Dst: crate::aio::PubSub::new
      Src: /src/redis-rs/redis/src/client.rs:502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 503
    functionName: Client::get_async_pubsub
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Client::get_simple_async_connection_dynamically
    - crate::aio::PubSub::new
    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:508,1
    - Dst: crate::aio::Monitor::new
      Src: /src/redis-rs/redis/src/client.rs:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 512
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 512
    functionName: Client::get_async_monitor
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Client::get_simple_async_connection_dynamically
    - crate::aio::Monitor::new
    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:520,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/src/client.rs:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 521
      start: 519
    functionDepth: 33
    functionLinenumber: 519
    functionLinenumberEnd: 521
    functionName: Client::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - req_packed_command
    - Client::get_connection
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_packed_command(&mut self, cmd: &[u8]) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::get_connection
      Src: /src/redis-rs/redis/src/client.rs:529,1
    - Dst: req_packed_commands
      Src: /src/redis-rs/redis/src/client.rs:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&[u8]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 531
      start: 523
    functionDepth: 35
    functionLinenumber: 523
    functionLinenumberEnd: 531
    functionName: Client::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - req_packed_commands
    - Client::get_connection
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_packed_commands(&mut self,cmd: &[u8],offset: usize,count: usize,)
      -> RedisResult<Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 535
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 535
    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:538,1
    - Dst: RedisResult::check_connection
      Src: /src/redis-rs/redis/src/client.rs:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 543
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 543
    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:546,1
    - Dst: RedisResult::is_open
      Src: /src/redis-rs/redis/src/client.rs:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 551
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 551
    functionName: Client::is_open
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - RedisResult::is_open
    - Client::get_connection
    linkageType: ''
    returnType: bool
    signature: fn is_open(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 561
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 561
    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: RedisResult::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:
    - RedisResult::splitn
    - next
    - errors::ServerError
    - Option::into
    - unwrap
    - into
    - map
    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:
    - to_string
    - io::Error::from
    - RedisError::from
    - is_unexpected_end_of_input
    - map_position
    - ParsingError::from
    - translate_position
    - map_range
    - buffer
    - into
    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
    - Ok
    - to_redis_err
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn parse_redis_value_async<R>(decoder: &mut combine::stream::Decoder<AnySendSyncPartialState,
      PointerOffset<[u8]>>,read: &mut R,) -> RedisResult<Value>whereR: AsyncRead +
      std::marker::Unpin,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 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
    - Ok
    - to_redis_err
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn parse_value<T: Read>(&mut self, mut reader: T) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Parser::new
      Src: /src/redis-rs/redis/src/parser.rs: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:
    - Parser::new
    - ServerError::parse_value
    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:488,1
    - Dst: bytes::BytesMut::from
      Src: /src/redis-rs/redis/src/parser.rs:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 497
      start: 486
    functionDepth: 32
    functionLinenumber: 486
    functionLinenumberEnd: 497
    functionName: tests::decode_eof_returns_none_at_eof
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - ValueCodec::default
    - bytes::BytesMut::from
    linkageType: ''
    returnType: void
    signature: fn decode_eof_returns_none_at_eof()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValueCodec::default
      Src: /src/redis-rs/redis/src/parser.rs:503,1
    - Dst: bytes::BytesMut::from
      Src: /src/redis-rs/redis/src/parser.rs:506,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/parser.rs:506,1
    - Dst: Self::decode_eof
      Src: /src/redis-rs/redis/src/parser.rs:507,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:507,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:507,1
    - Dst: bytes::BytesMut::from
      Src: /src/redis-rs/redis/src/parser.rs:521,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/parser.rs:521,1
    - Dst: Self::decode_eof
      Src: /src/redis-rs/redis/src/parser.rs:522,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:522,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 525
      start: 501
    functionDepth: 32
    functionLinenumber: 501
    functionLinenumberEnd: 525
    functionName: tests::decode_eof_returns_error_inside_array_and_can_parse_more_inputs
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - Self::decode_eof
    - bytes::BytesMut::from
    - '&str::as_slice'
    - unwrap
    - ValueCodec::default
    linkageType: ''
    returnType: void
    signature: fn decode_eof_returns_error_inside_array_and_can_parse_more_inputs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:533,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:547,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 550
      start: 528
    functionDepth: 33
    functionLinenumber: 528
    functionLinenumberEnd: 550
    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:554,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:554,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:556,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:556,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:564,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:564,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:572,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:572,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:574,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:574,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:576,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:576,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:578,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:578,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:581,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:581,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:583,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 585
      start: 553
    functionDepth: 33
    functionLinenumber: 553
    functionLinenumberEnd: 585
    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:589,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:589,1
    - Dst: as_map_iter
      Src: /src/redis-rs/redis/src/parser.rs:590,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 599
      start: 588
    functionDepth: 33
    functionLinenumber: 588
    functionLinenumberEnd: 599
    functionName: tests::decode_resp3_map
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - Option::unwrap
    - RedisResult::unwrap
    - as_map_iter
    linkageType: ''
    returnType: void
    signature: fn decode_resp3_map()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:603,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:603,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:605,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:605,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:607,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 611
      start: 602
    functionDepth: 33
    functionLinenumber: 602
    functionLinenumberEnd: 611
    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:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 623
      start: 614
    functionDepth: 33
    functionLinenumber: 614
    functionLinenumberEnd: 623
    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:627,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:627,1
    - Dst: Value::BigNumber
      Src: /src/redis-rs/redis/src/parser.rs:629,1
    - Dst: num_bigint::BigInt::parse_bytes
      Src: /src/redis-rs/redis/src/parser.rs:630,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:630,1
    - Dst: Value::BigNumber
      Src: /src/redis-rs/redis/src/parser.rs:634,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/src/parser.rs:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 636
      start: 626
    functionDepth: 33
    functionLinenumber: 626
    functionLinenumberEnd: 636
    functionName: tests::decode_resp3_big_number
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - num_bigint::BigInt::parse_bytes
    - '&str::to_vec'
    - RedisResult::unwrap
    - parse_redis_value
    - Value::BigNumber
    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:640,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:640,1
    - Dst: as_sequence
      Src: /src/redis-rs/redis/src/parser.rs:641,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 647
      start: 639
    functionDepth: 33
    functionLinenumber: 639
    functionLinenumberEnd: 647
    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:651,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 663
      start: 650
    functionDepth: 33
    functionLinenumber: 650
    functionLinenumberEnd: 663
    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:668,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:668,1
    - 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: repeat
      Src: /src/redis-rs/redis/src/parser.rs:671,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:671,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/parser.rs:672,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/parser.rs:672,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:673,1
    - Dst: repeat
      Src: /src/redis-rs/redis/src/parser.rs:679,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:679,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/parser.rs:680,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:681,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 686
      start: 666
    functionDepth: 27
    functionLinenumber: 666
    functionLinenumberEnd: 686
    functionName: tests::test_max_recursion_depth_set_and_array
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - repeat
    - as_bytes
    - to_vec
    - parse_redis_value
    - clone
    - 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:693,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:693,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/parser.rs:694,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:695,1
    - Dst: repeat
      Src: /src/redis-rs/redis/src/parser.rs:701,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:701,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/parser.rs:702,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 707
      start: 689
    functionDepth: 27
    functionLinenumber: 689
    functionLinenumberEnd: 707
    functionName: tests::test_max_recursion_depth_map
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - extend
    - repeat
    - to_vec
    - parse_redis_value
    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:
    - Ok
    - as_str
    - query_async
    - Err
    - Cmd::ping
    - into
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tls_mode
    argTypes:
    - TlsMode
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 180
    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:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - redis_connection_info
    argTypes:
    - RedisConnectionInfo
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 188
    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:197,1
    - Dst: ClusterClientBuilder::as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:205,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:205,1
    - Dst: transpose
      Src: /src/redis-rs/redis/src/sentinel.rs:205,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:215,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:217,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:217,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/sentinel.rs:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - ip
    - port
    - certs
    argTypes:
    - String
    - u16
    - '&Option<TlsCertificates>'
    constantsTouched: []
    func_position:
      end: 220
      start: 190
    functionDepth: 28
    functionLinenumber: 190
    functionLinenumberEnd: 220
    functionName: SentinelNodeConnectionInfo::create_connection_info
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - transpose
    - Ok
    - ClusterClientBuilder::as_ref
    - clone
    - crate::ConnectionAddr::Tcp
    - unwrap_or_default
    - map
    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: 230
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 230
    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:234,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 25
    functionLinenumber: 233
    functionLinenumberEnd: 237
    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:240,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:241,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - master_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 25
    functionLinenumber: 239
    functionLinenumberEnd: 244
    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:247,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/sentinel.rs:247,1
    - Dst: TlsFilePaths::as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:247,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:247,1
    - Dst: '&HashMap<String, String>::contains_key'
      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>::get'
      Src: /src/redis-rs/redis/src/sentinel.rs:250,1
    - Dst: RedisResult::is_some_and
      Src: /src/redis-rs/redis/src/sentinel.rs:250,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:251,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:251,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:251,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/src/sentinel.rs:253,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/sentinel.rs:253,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 2
    argNames:
    - master_info
    - service_name
    argTypes:
    - '&HashMap<String, String>'
    - '&str'
    constantsTouched: []
    func_position:
      end: 254
      start: 246
    functionDepth: 33
    functionLinenumber: 246
    functionLinenumberEnd: 254
    functionName: is_master_valid
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - RedisResult::map
    - contains
    - parse::<u16>
    - '&HashMap<String, String>::contains_key'
    - TlsFilePaths::as_str
    - is_ok
    - RedisResult::is_some_and
    - Some
    - '&HashMap<String, String>::get'
    linkageType: ''
    returnType: bool
    signature: 'fn is_master_valid(master_info: &HashMap<String, String>, service_name:
      &str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&HashMap<String, String>::contains_key'
      Src: /src/redis-rs/redis/src/sentinel.rs:257,1
    - Dst: '&HashMap<String, String>::contains_key'
      Src: /src/redis-rs/redis/src/sentinel.rs:258,1
    - Dst: '&HashMap<String, String>::get'
      Src: /src/redis-rs/redis/src/sentinel.rs:259,1
    - Dst: RedisResult::is_some_and
      Src: /src/redis-rs/redis/src/sentinel.rs:259,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:261,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:261,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/src/sentinel.rs:262,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/sentinel.rs:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - replica_info
    argTypes:
    - '&HashMap<String, String>'
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 35
    functionLinenumber: 256
    functionLinenumberEnd: 263
    functionName: is_replica_valid
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - contains
    - parse::<u16>
    - '&HashMap<String, String>::contains_key'
    - is_ok
    - RedisResult::is_some_and
    - '&HashMap<String, String>::get'
    linkageType: ''
    returnType: bool
    signature: 'fn is_replica_valid(replica_info: &HashMap<String, String>) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::rng
      Src: /src/redis-rs/redis/src/sentinel.rs:267,1
    - Dst: random_range
      Src: /src/redis-rs/redis/src/sentinel.rs:267,1
    - Dst: NonZeroUsize::into
      Src: /src/redis-rs/redis/src/sentinel.rs:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - max
    argTypes:
    - NonZeroUsize
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: random_replica_index
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - rand::rng
    - NonZeroUsize::into
    - random_range
    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:271,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/sentinel.rs:272,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/src/sentinel.rs:278,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:278,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:280,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:280,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - addresses
    argTypes:
    - '&[ConnectionInfo]'
    constantsTouched: []
    func_position:
      end: 282
      start: 270
    functionDepth: 33
    functionLinenumber: 270
    functionLinenumberEnd: 282
    functionName: build_replica_clients
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - RedisResult::iter
    - RedisResult::is_empty
    - Client::open
    - collect
    - ConnectionAddr::clone
    - fail
    - map
    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:288,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/sentinel.rs:289,1
    - Dst: Option<usize>::unwrap_or
      Src: /src/redis-rs/redis/src/sentinel.rs:295,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:298,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:299,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:300,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:300,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:301,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:302,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:309,1
    - Dst: None::expect
      Src: /src/redis-rs/redis/src/sentinel.rs:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 2
    argNames:
    - addresses
    - start_index
    argTypes:
    - '&[ConnectionInfo]'
    - Option<usize>
    constantsTouched: []
    func_position:
      end: 310
      start: 284
    functionDepth: 27
    functionLinenumber: 284
    functionLinenumberEnd: 310
    functionName: try_connect_to_first_replica
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Option<usize>::unwrap_or
    - RedisResult::is_empty
    - RedisResult::len
    - Client::open
    - Ok
    - None::expect
    - clone
    - Some
    - fail
    - Err
    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:316,1
    - Dst: std::iter::Chain::filter
      Src: /src/redis-rs/redis/src/sentinel.rs:316,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:316,1
    - Dst: redis::ConnectionInfo::remove
      Src: /src/redis-rs/redis/src/sentinel.rs:321,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:321,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/src/sentinel.rs:322,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:322,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: 325
      start: 312
    functionDepth: 28
    functionLinenumber: 312
    functionLinenumberEnd: 325
    functionName: valid_addrs
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - redis::ConnectionInfo::remove
    - parse::<u16>
    - std::iter::Chain::filter
    - Vec<HashMap<String, String>>::into_iter
    - unwrap
    - map
    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:330,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:330,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:331,1
    - Dst: check_role
      Src: /src/redis-rs/redis/src/sentinel.rs:334,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:336,1
    - Dst: check_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:340,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:342,1
    - Dst: evaluate_role_check_errors
      Src: /src/redis-rs/redis/src/sentinel.rs:345,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:345,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 346
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 346
    functionName: determine_master_from_role_or_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap_err
    - Client::open
    - evaluate_role_check_errors
    - Ok
    - get_connection
    - redis::ConnectionInfo::clone
    - check_role
    - check_info_replication
    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:349,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:349,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:350,1
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:351,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 30
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: get_node_role
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::query
    - Client::open
    - get_connection
    - redis::ConnectionInfo::clone
    - crate::cmd
    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:355,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 356
      start: 354
    functionDepth: 30
    functionLinenumber: 354
    functionLinenumberEnd: 356
    functionName: check_role
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - redis::Cmd::query
    - crate::cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'fn check_role(conn: &mut Connection) -> RedisResult<Role>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:359,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:359,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/src/sentinel.rs:359,1
    - Dst: parse_replication_info
      Src: /src/redis-rs/redis/src/sentinel.rs:362,1
    - Dst: HashMap::get
      Src: /src/redis-rs/redis/src/sentinel.rs:363,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:364,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:364,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:365,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 370
      start: 358
    functionDepth: 25
    functionLinenumber: 358
    functionLinenumberEnd: 370
    functionName: check_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - redis::Cmd::arg
    - RedisError::from
    - HashMap::get
    - parse_replication_info
    - Ok
    - crate::cmd
    - clone
    - '&mut Cmd::query'
    - Err
    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:377,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:377,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:378,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - role_err
    - fallback_role_err
    argTypes:
    - RedisError
    - RedisError
    constantsTouched: []
    func_position:
      end: 382
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 382
    functionName: evaluate_role_check_errors
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - Err
    - RedisError::kind
    - into
    linkageType: ''
    returnType: RedisResult
    signature: 'fn evaluate_role_check_errors(role_err: RedisError,fallback_role_err:
      RedisError,) -> RedisResult<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valid_addrs
      Src: /src/redis-rs/redis/src/sentinel.rs:406,1
    - Dst: is_master_valid
      Src: /src/redis-rs/redis/src/sentinel.rs:406,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:408,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:410,1
    - Dst: determine_master_from_role_or_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:411,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:412,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: 420
      start: 400
    functionDepth: 29
    functionLinenumber: 400
    functionLinenumberEnd: 420
    functionName: find_valid_master
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - determine_master_from_role_or_info_replication
    - is_master_valid
    - Ok
    - SentinelNodeConnectionInfo::create_connection_info
    - valid_addrs
    linkageType: ''
    returnType: RedisResult
    signature: 'fn find_valid_master(masters: Vec<HashMap<String, String>>,service_name:
      &str,node_connection_info: &SentinelNodeConnectionInfo,#[cfg(feature = "tls-rustls")]
      certs: &Option<TlsCertificates>,) -> RedisResult<ConnectionInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:426,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:426,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:427,1
    - Dst: async_check_role
      Src: /src/redis-rs/redis/src/sentinel.rs:429,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:431,1
    - Dst: async_check_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:435,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:437,1
    - Dst: evaluate_role_check_errors
      Src: /src/redis-rs/redis/src/sentinel.rs:440,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:440,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:440,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 441
      start: 423
    functionDepth: 34
    functionLinenumber: 423
    functionLinenumberEnd: 441
    functionName: async_determine_master_from_role_or_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - get_multiplexed_async_connection
    - async_check_role
    - async_check_info_replication
    - Client::open
    - evaluate_role_check_errors
    - Ok
    - redis::ConnectionInfo::clone
    - unwrap_err
    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:447,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:447,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:448,1
    - Dst: async_check_role
      Src: /src/redis-rs/redis/src/sentinel.rs:450,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:452,1
    - Dst: async_check_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:456,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:458,1
    - Dst: evaluate_role_check_errors
      Src: /src/redis-rs/redis/src/sentinel.rs:461,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:461,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:461,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 462
      start: 444
    functionDepth: 34
    functionLinenumber: 444
    functionLinenumberEnd: 462
    functionName: async_determine_slave_from_role_or_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - get_multiplexed_async_connection
    - async_check_role
    - async_check_info_replication
    - Client::open
    - evaluate_role_check_errors
    - Ok
    - redis::ConnectionInfo::clone
    - unwrap_err
    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:466,1
    - Dst: redis::Cmd::query_async
      Src: /src/redis-rs/redis/src/sentinel.rs:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut MultiplexedConnection'
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 30
    functionLinenumber: 465
    functionLinenumberEnd: 468
    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:472,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:472,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/src/sentinel.rs:472,1
    - Dst: parse_replication_info
      Src: /src/redis-rs/redis/src/sentinel.rs:477,1
    - Dst: HashMap::get
      Src: /src/redis-rs/redis/src/sentinel.rs:478,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:479,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:479,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:480,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut MultiplexedConnection'
    constantsTouched: []
    func_position:
      end: 485
      start: 471
    functionDepth: 25
    functionLinenumber: 471
    functionLinenumberEnd: 485
    functionName: async_check_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 2
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::query_async'
    - RedisError::from
    - HashMap::get
    - parse_replication_info
    - Ok
    - crate::cmd
    - clone
    - Err
    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:495,1
    - Dst: is_master_valid
      Src: /src/redis-rs/redis/src/sentinel.rs:495,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:497,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:499,1
    - Dst: async_determine_master_from_role_or_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:500,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:501,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: 509
      start: 489
    functionDepth: 29
    functionLinenumber: 489
    functionLinenumberEnd: 509
    functionName: async_find_valid_master
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - async_determine_master_from_role_or_info_replication
    - is_master_valid
    - Ok
    - SentinelNodeConnectionInfo::create_connection_info
    - valid_addrs
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_find_valid_master(masters: Vec<HashMap<String, String>>,service_name:
      &str,node_connection_info: &SentinelNodeConnectionInfo,#[cfg(feature = "tls-rustls")]
      certs: &Option<TlsCertificates>,) -> RedisResult<ConnectionInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valid_addrs
      Src: /src/redis-rs/redis/src/sentinel.rs:534,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/src/sentinel.rs:534,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:535,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:534,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:538,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:538,1
    - Dst: std::iter::Chain::filter
      Src: /src/redis-rs/redis/src/sentinel.rs:538,1
    - Dst: get_node_role
      Src: /src/redis-rs/redis/src/sentinel.rs:541,1
    - Dst: RedisResult::is_ok_and
      Src: /src/redis-rs/redis/src/sentinel.rs:541,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:538,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: 544
      start: 529
    functionDepth: 29
    functionLinenumber: 529
    functionLinenumberEnd: 544
    functionName: get_valid_replicas_addresses
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::map
    - RedisResult::is_ok_and
    - RedisResult::into_iter
    - std::iter::Chain::filter
    - Ok
    - SentinelNodeConnectionInfo::create_connection_info
    - "map(|(ip, port)| node_connection_info.create_connection_info(ip, port, certs))\n\
      \        .collect::<RedisResult<Vec<ConnectionInfo>>>"
    - get_node_role
    - collect
    - valid_addrs
    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:581,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:584,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - ConnectionInfo
    constantsTouched: []
    func_position:
      end: 591
      start: 580
    functionDepth: 35
    functionLinenumber: 580
    functionLinenumberEnd: 591
    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:593,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/src/sentinel.rs:593,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:594,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:593,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:597,1
    - Dst: futures_util::stream::iter
      Src: /src/redis-rs/redis/src/sentinel.rs:597,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/sentinel.rs:597,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:597,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: 601
      start: 575
    functionDepth: 29
    functionLinenumber: 575
    functionLinenumberEnd: 601
    functionName: async_get_valid_replicas_addresses
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - futures_util::stream::iter
    - impl Iterator::map
    - "map(|(ip, port)| node_connection_info.create_connection_info(ip, port, certs))\n\
      \        .collect::<RedisResult<Vec<_>>>"
    - filter_map
    - collect
    - Ok
    - SentinelNodeConnectionInfo::create_connection_info
    - valid_addrs
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_get_valid_replicas_addresses(replicas: Vec<HashMap<String,
      String>>,node_connection_info: &SentinelNodeConnectionInfo,certs: &Option<TlsCertificates>,)
      -> RedisResult<Vec<ConnectionInfo>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:608,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:608,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:609,1
    - Dst: bool::replace
      Src: /src/redis-rs/redis/src/sentinel.rs:610,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - connection
    - connection_info
    argTypes:
    - '&mut Option<AsyncConnection>'
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 612
      start: 604
    functionDepth: 34
    functionLinenumber: 604
    functionLinenumberEnd: 612
    functionName: async_reconnect
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - get_multiplexed_async_connection
    - Client::open
    - Ok
    - redis::ConnectionInfo::clone
    - bool::replace
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_reconnect(connection: &mut Option<AsyncConnection>,connection_info:
      &ConnectionInfo,) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Option<AsyncConnection>::is_none'
      Src: /src/redis-rs/redis/src/sentinel.rs:620,1
    - Dst: async_reconnect
      Src: /src/redis-rs/redis/src/sentinel.rs:621,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/src/sentinel.rs:624,1
    - Dst: '&mut Option<AsyncConnection>::as_mut'
      Src: /src/redis-rs/redis/src/sentinel.rs:624,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:624,1
    - Dst: is_unrecoverable_error
      Src: /src/redis-rs/redis/src/sentinel.rs:627,1
    - Dst: is_io_error
      Src: /src/redis-rs/redis/src/sentinel.rs:627,1
    - Dst: async_reconnect
      Src: /src/redis-rs/redis/src/sentinel.rs:628,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/src/sentinel.rs:629,1
    - Dst: '&mut Option<AsyncConnection>::as_mut'
      Src: /src/redis-rs/redis/src/sentinel.rs:629,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:629,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:631,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: 636
      start: 615
    functionDepth: 35
    functionLinenumber: 615
    functionLinenumberEnd: 636
    functionName: async_try_single_sentinel
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - is_io_error
    - '&mut Option<AsyncConnection>::is_none'
    - is_unrecoverable_error
    - '&mut Option<AsyncConnection>::as_mut'
    - async_reconnect
    - Cmd::query_async
    - unwrap
    - Err
    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:642,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:642,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:643,1
    - Dst: bool::replace
      Src: /src/redis-rs/redis/src/sentinel.rs:644,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - connection
    - connection_info
    argTypes:
    - '&mut Option<Connection>'
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 646
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 646
    functionName: reconnect
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - Client::open
    - Ok
    - get_connection
    - redis::ConnectionInfo::clone
    - bool::replace
    linkageType: ''
    returnType: RedisResult
    signature: 'fn reconnect(connection: &mut Option<Connection>,connection_info:
      &ConnectionInfo,) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Option<Connection>::is_none'
      Src: /src/redis-rs/redis/src/sentinel.rs:653,1
    - Dst: reconnect
      Src: /src/redis-rs/redis/src/sentinel.rs:654,1
    - Dst: Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:657,1
    - Dst: '&mut Option<Connection>::as_mut'
      Src: /src/redis-rs/redis/src/sentinel.rs:657,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:657,1
    - Dst: is_unrecoverable_error
      Src: /src/redis-rs/redis/src/sentinel.rs:660,1
    - Dst: is_io_error
      Src: /src/redis-rs/redis/src/sentinel.rs:660,1
    - Dst: reconnect
      Src: /src/redis-rs/redis/src/sentinel.rs:661,1
    - Dst: Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:662,1
    - Dst: '&mut Option<Connection>::as_mut'
      Src: /src/redis-rs/redis/src/sentinel.rs:662,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:662,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:664,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: 669
      start: 648
    functionDepth: 30
    functionLinenumber: 648
    functionLinenumberEnd: 669
    functionName: try_single_sentinel
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - is_io_error
    - reconnect
    - Cmd::query
    - is_unrecoverable_error
    - '&mut Option<Connection>::as_mut'
    - '&mut Option<Connection>::is_none'
    - unwrap
    - Err
    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:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - params
    argTypes:
    - Vec<T>
    constantsTouched: []
    func_position:
      end: 685
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 685
    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:691,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/sentinel.rs:692,1
    - Dst: Vec<T>::into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:698,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/sentinel.rs:698,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:700,1
    - Dst: "into_iter()\n            .map(|p| p.into_connection_info())\n        \
        \    .collect::<RedisResult<Vec<ConnectionInfo>>>"
      Src: /src/redis-rs/redis/src/sentinel.rs:698,1
    - Dst: resize_with
      Src: /src/redis-rs/redis/src/sentinel.rs:704,1
    - Dst: '&Vec::len'
      Src: /src/redis-rs/redis/src/sentinel.rs:704,1
    - Dst: resize_with
      Src: /src/redis-rs/redis/src/sentinel.rs:709,1
    - Dst: '&Vec::len'
      Src: /src/redis-rs/redis/src/sentinel.rs:709,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:711,1
    - Dst: random_replica_index
      Src: /src/redis-rs/redis/src/sentinel.rs:715,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:715,1
    - Dst: RedisServer::unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:715,1
    - Dst: resize_with
      Src: /src/redis-rs/redis/src/sentinel.rs:723,1
    - Dst: '&Vec::len'
      Src: /src/redis-rs/redis/src/sentinel.rs:723,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:725,1
    - Dst: random_replica_index
      Src: /src/redis-rs/redis/src/sentinel.rs:729,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:729,1
    - Dst: RedisServer::unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:729,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:738,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:738,1
    - Dst: RedisServer::unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:738,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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 57
    argCount: 2
    argNames:
    - params
    - certs
    argTypes:
    - Vec<T>
    - Option<TlsCertificates>
    constantsTouched: []
    func_position:
      end: 751
      start: 687
    functionDepth: 27
    functionLinenumber: 687
    functionLinenumberEnd: 751
    functionName: Sentinel::build_inner
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - resize_with
    - '&Vec::len'
    - std::iter::Chain::map
    - "into_iter()\n            .map(|p| p.into_connection_info())\n            .collect::<RedisResult<Vec<ConnectionInfo>>>"
    - Vec<T>::is_empty
    - Ok
    - into_connection_info
    - Vec<T>::into_iter
    - NonZeroUsize::new
    - RedisServer::unwrap
    - fail
    - random_replica_index
    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:765,1
    - Dst: zip
      Src: /src/redis-rs/redis/src/sentinel.rs:765,1
    - Dst: iter_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:768,1
    - Dst: try_single_sentinel
      Src: /src/redis-rs/redis/src/sentinel.rs:770,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:770,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:772,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:775,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:781,1
    - Dst: None::expect
      Src: /src/redis-rs/redis/src/sentinel.rs:781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - Cmd
    constantsTouched: []
    func_position:
      end: 782
      start: 763
    functionDepth: 33
    functionLinenumber: 763
    functionLinenumberEnd: 782
    functionName: Sentinel::try_all_sentinels
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Cmd::clone
    - Ok
    - iter
    - zip
    - None::expect
    - Some
    - iter_mut
    - Err
    - try_single_sentinel
    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:787,1
    - Dst: sentinel_masters_cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 788
      start: 786
    functionDepth: 34
    functionLinenumber: 786
    functionLinenumberEnd: 788
    functionName: Sentinel::get_sentinel_masters
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - sentinel_masters_cmd
    - Sentinel::try_all_sentinels
    linkageType: ''
    returnType: RedisResult
    signature: fn get_sentinel_masters(&mut self) -> RedisResult<Vec<HashMap<String,
      String>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::try_all_sentinels
      Src: /src/redis-rs/redis/src/sentinel.rs:794,1
    - Dst: sentinel_replicas_cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - service_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 795
      start: 790
    functionDepth: 34
    functionLinenumber: 790
    functionLinenumberEnd: 795
    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:813,1
    - Dst: find_valid_master
      Src: /src/redis-rs/redis/src/sentinel.rs:814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - '&SentinelNodeConnectionInfo'
    constantsTouched: []
    func_position:
      end: 815
      start: 808
    functionDepth: 35
    functionLinenumber: 808
    functionLinenumberEnd: 815
    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:833,1
    - Dst: get_valid_replicas_addresses
      Src: /src/redis-rs/redis/src/sentinel.rs:834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - '&SentinelNodeConnectionInfo'
    constantsTouched: []
    func_position:
      end: 835
      start: 828
    functionDepth: 35
    functionLinenumber: 828
    functionLinenumberEnd: 835
    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:847,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:847,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 849
      start: 841
    functionDepth: 36
    functionLinenumber: 841
    functionLinenumberEnd: 849
    functionName: Sentinel::master_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 9
    functionsReached:
    - Sentinel::find_master_address
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Client::open
    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:860,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:861,1
    - Dst: build_replica_clients
      Src: /src/redis-rs/redis/src/sentinel.rs:862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 863
      start: 855
    functionDepth: 36
    functionLinenumber: 855
    functionLinenumberEnd: 863
    functionName: Sentinel::get_replica_clients
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 4
    functionsReached:
    - build_replica_clients
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Sentinel::find_valid_replica_addresses
    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:871,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:872,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:873,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:873,1
    - Dst: RedisServer::map
      Src: /src/redis-rs/redis/src/sentinel.rs:873,1
    - Dst: try_connect_to_first_replica
      Src: /src/redis-rs/redis/src/sentinel.rs:874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 875
      start: 866
    functionDepth: 36
    functionLinenumber: 866
    functionLinenumberEnd: 875
    functionName: Sentinel::replica_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 2
    functionsReached:
    - SentinelNodeConnectionInfo::unwrap_or_default
    - try_connect_to_first_replica
    - RedisResult::len
    - RedisServer::map
    - NonZeroUsize::new
    - 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:886,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:887,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/sentinel.rs:888,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:889,1
    - Dst: try_connect_to_first_replica
      Src: /src/redis-rs/redis/src/sentinel.rs:891,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 892
      start: 881
    functionDepth: 36
    functionLinenumber: 881
    functionLinenumberEnd: 892
    functionName: Sentinel::replica_rotate_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 3
    functionsReached:
    - SentinelNodeConnectionInfo::unwrap_or_default
    - RedisResult::is_empty
    - try_connect_to_first_replica
    - RedisResult::len
    - Some
    - 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:901,1
    - Dst: zip
      Src: /src/redis-rs/redis/src/sentinel.rs:901,1
    - Dst: iter_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:904,1
    - Dst: async_try_single_sentinel
      Src: /src/redis-rs/redis/src/sentinel.rs:906,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:906,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:908,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:911,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:917,1
    - Dst: None::expect
      Src: /src/redis-rs/redis/src/sentinel.rs:917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - Cmd
    constantsTouched: []
    func_position:
      end: 918
      start: 899
    functionDepth: 33
    functionLinenumber: 899
    functionLinenumberEnd: 918
    functionName: Sentinel::async_try_all_sentinels
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Cmd::clone
    - Ok
    - iter
    - zip
    - None::expect
    - Some
    - iter_mut
    - Err
    - async_try_single_sentinel
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_try_all_sentinels<T: FromRedisValue>(&mut self, cmd:
      Cmd) -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::async_try_all_sentinels
      Src: /src/redis-rs/redis/src/sentinel.rs:921,1
    - Dst: sentinel_masters_cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 922
      start: 920
    functionDepth: 34
    functionLinenumber: 920
    functionLinenumberEnd: 922
    functionName: Sentinel::async_get_sentinel_masters
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - sentinel_masters_cmd
    - Sentinel::async_try_all_sentinels
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_get_sentinel_masters(&mut self) -> RedisResult<Vec<HashMap<String,
      String>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::async_try_all_sentinels
      Src: /src/redis-rs/redis/src/sentinel.rs:928,1
    - Dst: sentinel_replicas_cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - service_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 930
      start: 924
    functionDepth: 34
    functionLinenumber: 924
    functionLinenumberEnd: 930
    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:948,1
    - Dst: async_find_valid_master
      Src: /src/redis-rs/redis/src/sentinel.rs:949,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - '&SentinelNodeConnectionInfo'
    constantsTouched: []
    func_position:
      end: 950
      start: 943
    functionDepth: 35
    functionLinenumber: 943
    functionLinenumberEnd: 950
    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:968,1
    - Dst: async_get_valid_replicas_addresses
      Src: /src/redis-rs/redis/src/sentinel.rs:969,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - '&SentinelNodeConnectionInfo'
    constantsTouched: []
    func_position:
      end: 970
      start: 963
    functionDepth: 35
    functionLinenumber: 963
    functionLinenumberEnd: 970
    functionName: Sentinel::async_find_valid_replica_addresses
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - async_get_valid_replicas_addresses
    - Sentinel::async_get_sentinel_replicas
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_find_valid_replica_addresses(&mut self,service_name:
      &str,node_connection_info: &SentinelNodeConnectionInfo,) -> RedisResult<Vec<ConnectionInfo>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::async_find_master_address
      Src: /src/redis-rs/redis/src/sentinel.rs:981,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:982,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:984,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 985
      start: 976
    functionDepth: 36
    functionLinenumber: 976
    functionLinenumberEnd: 985
    functionName: Sentinel::async_master_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 8
    functionsReached:
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Client::open
    - Sentinel::async_find_master_address
    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:996,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:999,1
    - Dst: build_replica_clients
      Src: /src/redis-rs/redis/src/sentinel.rs:1002,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 1003
      start: 991
    functionDepth: 36
    functionLinenumber: 991
    functionLinenumberEnd: 1003
    functionName: Sentinel::async_get_replica_clients
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 4
    functionsReached:
    - build_replica_clients
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Sentinel::async_find_valid_replica_addresses
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn async_get_replica_clients(&mut self,service_name: &str,node_connection_info:
      Option<&SentinelNodeConnectionInfo>,) -> RedisResult<Vec<Client>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::async_find_valid_replica_addresses
      Src: /src/redis-rs/redis/src/sentinel.rs:1012,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1015,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:1018,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:1018,1
    - Dst: RedisServer::map
      Src: /src/redis-rs/redis/src/sentinel.rs:1018,1
    - Dst: try_connect_to_first_replica
      Src: /src/redis-rs/redis/src/sentinel.rs:1019,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 1020
      start: 1007
    functionDepth: 36
    functionLinenumber: 1007
    functionLinenumberEnd: 1020
    functionName: Sentinel::async_replica_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - SentinelNodeConnectionInfo::unwrap_or_default
    - try_connect_to_first_replica
    - Sentinel::async_find_valid_replica_addresses
    - RedisResult::len
    - RedisServer::map
    - NonZeroUsize::new
    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:1031,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1034,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/sentinel.rs:1037,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:1038,1
    - Dst: try_connect_to_first_replica
      Src: /src/redis-rs/redis/src/sentinel.rs:1040,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1040,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 1041
      start: 1026
    functionDepth: 36
    functionLinenumber: 1026
    functionLinenumberEnd: 1041
    functionName: Sentinel::async_replica_rotate_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 2
    functionsReached:
    - SentinelNodeConnectionInfo::unwrap_or_default
    - RedisResult::is_empty
    - try_connect_to_first_replica
    - Sentinel::async_find_valid_replica_addresses
    - RedisResult::len
    - Some
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn async_replica_rotate_for(&mut self,service_name: &str,node_connection_info:
      Option<&SentinelNodeConnectionInfo>,) -> RedisResult<Client>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LockedSentinelClient
      Src: /src/redis-rs/redis/src/sentinel.rs:1064,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis/src/sentinel.rs:1064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - client
    argTypes:
    - SentinelClient
    constantsTouched: []
    func_position:
      end: 1065
      start: 1063
    functionDepth: 31
    functionLinenumber: 1063
    functionLinenumberEnd: 1065
    functionName: LockedSentinelClient::new
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - LockedSentinelClient
    - Mutex::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(client: SentinelClient) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/redis-rs/redis/src/sentinel.rs:1070,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:1070,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1069
    functionDepth: 2
    functionLinenumber: 1069
    functionLinenumberEnd: 1071
    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:1111,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: 1118
      start: 1105
    functionDepth: 28
    functionLinenumber: 1105
    functionLinenumberEnd: 1118
    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:1127,1
    - Dst: Sentinel::build_inner
      Src: /src/redis-rs/redis/src/sentinel.rs:1129,1
    - Dst: Sentinel::build_inner
      Src: /src/redis-rs/redis/src/sentinel.rs:1131,1
    - Dst: impl AsRef<str>::as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:1132,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1132,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1133,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: 1136
      start: 1120
    functionDepth: 28
    functionLinenumber: 1120
    functionLinenumberEnd: 1136
    functionName: SentinelClient::build_inner
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Sentinel::build_inner
    - Ok
    - impl AsRef<str>::as_ref
    - into
    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:1141,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:1143,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1143,1
    - Dst: replica_for
      Src: /src/redis-rs/redis/src/sentinel.rs:1144,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:1146,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1139
    functionDepth: 37
    functionLinenumber: 1139
    functionLinenumberEnd: 1148
    functionName: SentinelClient::get_client
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - master_for
    - as_str
    - replica_for
    - Some
    linkageType: ''
    returnType: RedisResult
    signature: pub fn get_client(&mut self) -> RedisResult<Client>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1167,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1167,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:1173,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:1173,1
    - Dst: try_single_sentinel::<Role>
      Src: /src/redis-rs/redis/src/sentinel.rs:1174,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:1175,1
    - Dst: first_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:1177,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/sentinel.rs:1177,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:1183,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1166
    functionDepth: 2
    functionLinenumber: 1166
    functionLinenumberEnd: 1197
    functionName: SentinelClient::get_sentinel_client
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - RedisError::from
    - unwrap_or
    - Client::open
    - Ok
    - redis::ConnectionInfo::clone
    - cmd::cmd
    - first_mut
    - try_single_sentinel::<Role>
    - Err
    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:1203,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:1204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1202
    functionDepth: 38
    functionLinenumber: 1202
    functionLinenumberEnd: 1205
    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:1217,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:1218,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1218,1
    - Dst: async_replica_for
      Src: /src/redis-rs/redis/src/sentinel.rs:1222,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:1223,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1214
    functionDepth: 37
    functionLinenumber: 1214
    functionLinenumberEnd: 1227
    functionName: SentinelClient::async_get_client
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - async_master_for
    - as_str
    - Some
    - async_replica_for
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn async_get_client(&mut self) -> RedisResult<Client>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1246,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1246,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:1252,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:1252,1
    - Dst: async_try_single_sentinel::<Role>
      Src: /src/redis-rs/redis/src/sentinel.rs:1253,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:1254,1
    - Dst: first_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:1256,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/sentinel.rs:1256,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:1264,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1245
    functionDepth: 2
    functionLinenumber: 1245
    functionLinenumberEnd: 1278
    functionName: SentinelClient::async_get_sentinel_client
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - RedisError::from
    - unwrap_or
    - Client::open
    - async_try_single_sentinel::<Role>
    - Ok
    - redis::ConnectionInfo::clone
    - cmd::cmd
    - first_mut
    - Err
    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:1284,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/sentinel.rs:1284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1283
    functionDepth: 33
    functionLinenumber: 1283
    functionLinenumberEnd: 1286
    functionName: SentinelClient::get_async_connection
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - SentinelClient::get_async_connection_with_config
    - AsyncConnectionConfig::new
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn get_async_connection(&mut self) -> RedisResult<AsyncConnection>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SentinelClient::async_get_client
      Src: /src/redis-rs/redis/src/sentinel.rs:1295,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/src/sentinel.rs:1295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&AsyncConnectionConfig'
    constantsTouched: []
    func_position:
      end: 1299
      start: 1291
    functionDepth: 38
    functionLinenumber: 1291
    functionLinenumberEnd: 1299
    functionName: SentinelClient::get_async_connection_with_config
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - get_multiplexed_async_connection_with_config
    - SentinelClient::async_get_client
    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:1334,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:1335,1
    - Dst: into_iter().collect::<Vec<_>>
      Src: /src/redis-rs/redis/src/sentinel.rs:1335,1
    - Dst: impl AsRef<str>::as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:1336,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1336,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: 1357
      start: 1329
    functionDepth: 1
    functionLinenumber: 1329
    functionLinenumberEnd: 1357
    functionName: SentinelClientBuilder::new
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - RedisResult::into_iter
    - Ok
    - impl AsRef<str>::as_ref
    - into_iter().collect::<Vec<_>>
    - into
    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:1361,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1368,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1372,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1381,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/sentinel.rs:1387,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1388,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1388,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/sentinel.rs:1394,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1395,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1395,1
    - Dst: tls::retrieve_tls_certificates
      Src: /src/redis-rs/redis/src/sentinel.rs:1422,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1423,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/sentinel.rs:1427,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1428,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1428,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/sentinel.rs:1434,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1435,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1435,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/src/sentinel.rs:1444,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:1450,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1451,1
    - Dst: '&''static str::clone'
      Src: /src/redis-rs/redis/src/sentinel.rs:1451,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:1454,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1455,1
    - Dst: '&''static str::clone'
      Src: /src/redis-rs/redis/src/sentinel.rs:1455,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:1462,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:1462,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:1467,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/sentinel.rs:1468,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:1462,1
    - Dst: SentinelClient::build_inner
      Src: /src/redis-rs/redis/src/sentinel.rs:1472,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1475,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 165
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1360
    functionDepth: 32
    functionLinenumber: 1360
    functionLinenumberEnd: 1480
    functionName: SentinelClientBuilder::build
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - is_some
    - Default::default
    - into_iter
    - Self::clone
    - RedisError::from
    - RedisConnectionInfo::default
    - collect
    - tls::retrieve_tls_certificates
    - Some
    - as_ref
    - '&''static str::clone'
    - Err
    - SentinelClient::build_inner
    - map
    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:1484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tls_mode
    argTypes:
    - TlsMode
    constantsTouched: []
    func_position:
      end: 1486
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1486
    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:1490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - i64
    constantsTouched: []
    func_position:
      end: 1492
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1492
    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:1499,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/sentinel.rs:1499,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - username
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 1501
      start: 1495
    functionDepth: 0
    functionLinenumber: 1495
    functionLinenumberEnd: 1501
    functionName: SentinelClientBuilder::set_client_to_redis_username
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - into
    - Some
    - '&''static str::as_ref'
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_redis_username(mut self,username: impl AsRef<str>,)
      -> SentinelClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1508,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/sentinel.rs:1508,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - password
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 1510
      start: 1504
    functionDepth: 0
    functionLinenumber: 1504
    functionLinenumberEnd: 1510
    functionName: SentinelClientBuilder::set_client_to_redis_password
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - into
    - Some
    - '&''static str::as_ref'
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_redis_password(mut self,password: impl AsRef<str>,)
      -> SentinelClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 1519
      start: 1513
    functionDepth: 0
    functionLinenumber: 1513
    functionLinenumberEnd: 1519
    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:1527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - certificates
    argTypes:
    - TlsCertificates
    constantsTouched: []
    func_position:
      end: 1529
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1529
    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:1533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tls_mode
    argTypes:
    - TlsMode
    constantsTouched: []
    func_position:
      end: 1535
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1535
    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:1542,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/sentinel.rs:1542,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - username
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 1544
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1544
    functionName: SentinelClientBuilder::set_client_to_sentinel_username
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - into
    - Some
    - '&''static str::as_ref'
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_sentinel_username(mut self,username: impl AsRef<str>,)
      -> SentinelClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1551,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/sentinel.rs:1551,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - password
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 1553
      start: 1547
    functionDepth: 0
    functionLinenumber: 1547
    functionLinenumberEnd: 1553
    functionName: SentinelClientBuilder::set_client_to_sentinel_password
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - into
    - Some
    - '&''static str::as_ref'
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_sentinel_password(mut self,password: impl AsRef<str>,)
      -> SentinelClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 1562
      start: 1556
    functionDepth: 0
    functionLinenumber: 1556
    functionLinenumberEnd: 1562
    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:1570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - certificates
    argTypes:
    - TlsCertificates
    constantsTouched: []
    func_position:
      end: 1572
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1572
    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: 809
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 809
    functionName: check_resp3
    functionSourceFile: /src/redis-rs/redis/src/lib.rs
    functionUses: 0
    functionsReached:
    - Err
    - supports_resp3
    - RedisError::from
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 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::<PubSub>
    - assert_send::<MultiplexedConnection>
    - assert_send::<Monitor>
    - assert_send::<ConnectionManager>
    - assert_send::<cluster_async::ClusterConnection>
    linkageType: ''
    returnType: void
    signature: fn test_is_send()
  - 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:
    - try_into
    - crate::io::tcp::stream_with_settings
    - TcpStream::connect
    - unwrap
    - Arc::into_inner
    - into_inner
    - into
    linkageType: ''
    returnType: io::Result
    signature: 'async fn connect_tcp(addr: &SocketAddr,tcp_settings: &crate::io::tcp::TcpSettings,)
      -> io::Result<TcpStream>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TcpStream::connect_timeout
      Src: /src/redis-rs/redis/src/connection.rs: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:
    - Some
    - url::Url::parse
    - scheme
    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: 0
    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:
    - into
    - Some
    - '&''static str::as_ref'
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_username(mut self, username: impl AsRef<str>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs: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:
    - into
    - Some
    - '&''static str::as_ref'
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_password(mut self, password: impl AsRef<str>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 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: TlsFilePaths::into_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 361
    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:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 375
    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:380,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/connection.rs:382,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/connection.rs:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 385
      start: 379
    functionDepth: 32
    functionLinenumber: 379
    functionLinenumberEnd: 385
    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:399,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:400,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 403
    functionName: '&str::into_connection_info'
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - fail
    - into_connection_info
    - parse_redis_url
    linkageType: ''
    returnType: RedisResult
    signature: fn into_connection_info(self) -> RedisResult<ConnectionInfo>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:411,1
    - Dst: ConnectionAddr::Tcp
      Src: /src/redis-rs/redis/src/connection.rs:412,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:412,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/src/connection.rs:413,1
    - Dst: TcpSettings::default
      Src: /src/redis-rs/redis/src/connection.rs:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 416
      start: 410
    functionDepth: 32
    functionLinenumber: 410
    functionLinenumberEnd: 416
    functionName: (T, u16)::into_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - RedisConnectionInfo::default
    - TcpSettings::default
    - Ok
    - into
    - ConnectionAddr::Tcp
    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:430,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:431,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 434
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 434
    functionName: String::into_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - fail
    - into_connection_info
    - parse_redis_url
    linkageType: ''
    returnType: RedisResult
    signature: fn into_connection_info(self) -> RedisResult<ConnectionInfo>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:438,1
    - Dst: get
      Src: /src/redis-rs/redis/src/connection.rs:438,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:445,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - query
    argTypes:
    - '&HashMap<Cow<str>, Cow<str>>'
    constantsTouched: []
    func_position:
      end: 454
      start: 437
    functionDepth: 33
    functionLinenumber: 437
    functionLinenumberEnd: 454
    functionName: parse_protocol
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - get
    - fail
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'fn parse_protocol(query: &HashMap<Cow<str>, Cow<str>>) -> RedisResult<ProtocolVersion>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - address
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 459
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 459
    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: host
      Src: /src/redis-rs/redis/src/connection.rs:462,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:476,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:477,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:478,1
    - Dst: is_wildcard_address
      Src: /src/redis-rs/redis/src/connection.rs:481,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:482,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/connection.rs:482,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:489,1
    - Dst: port
      Src: /src/redis-rs/redis/src/connection.rs:491,1
    - Dst: TcpListener::unwrap_or
      Src: /src/redis-rs/redis/src/connection.rs:491,1
    - Dst: scheme
      Src: /src/redis-rs/redis/src/connection.rs:492,1
    - Dst: scheme
      Src: /src/redis-rs/redis/src/connection.rs:492,1
    - Dst: fragment
      Src: /src/redis-rs/redis/src/connection.rs:495,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:502,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:516,1
    - Dst: ConnectionAddr::Tcp
      Src: /src/redis-rs/redis/src/connection.rs:521,1
    - Dst: query_pairs
      Src: /src/redis-rs/redis/src/connection.rs:523,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/connection.rs:523,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:524,1
    - Dst: path
      Src: /src/redis-rs/redis/src/connection.rs:527,1
    - Dst: trim_matches
      Src: /src/redis-rs/redis/src/connection.rs:527,1
    - Dst: parse::<i64>
      Src: /src/redis-rs/redis/src/connection.rs:529,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:529,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:530,1
    - Dst: username
      Src: /src/redis-rs/redis/src/connection.rs:533,1
    - Dst: '&''static str::is_empty'
      Src: /src/redis-rs/redis/src/connection.rs:533,1
    - Dst: percent_encoding::percent_decode
      Src: /src/redis-rs/redis/src/connection.rs:536,1
    - Dst: username
      Src: /src/redis-rs/redis/src/connection.rs:536,1
    - Dst: '&''static str::as_bytes'
      Src: /src/redis-rs/redis/src/connection.rs:536,1
    - Dst: decode_utf8
      Src: /src/redis-rs/redis/src/connection.rs:536,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:537,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:537,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:538,1
    - Dst: password
      Src: /src/redis-rs/redis/src/connection.rs:544,1
    - Dst: percent_encoding::percent_decode
      Src: /src/redis-rs/redis/src/connection.rs:545,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/connection.rs:545,1
    - Dst: decode_utf8
      Src: /src/redis-rs/redis/src/connection.rs:545,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:546,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:546,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:547,1
    - Dst: parse_protocol
      Src: /src/redis-rs/redis/src/connection.rs:554,1
    - Dst: TcpSettings::default
      Src: /src/redis-rs/redis/src/connection.rs:557,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 94
    argCount: 1
    argNames:
    - url
    argTypes:
    - url::Url
    constantsTouched: []
    func_position:
      end: 559
      start: 461
    functionDepth: 32
    functionLinenumber: 461
    functionLinenumberEnd: 559
    functionName: url_to_tcp_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - to_string
    - Ok
    - '&''static str::as_bytes'
    - trim_matches
    - scheme
    - Some
    - path
    - into
    - password
    - ConnectionAddr::Tcp
    - is_wildcard_address
    - host
    - collect
    - TcpSettings::default
    - query_pairs
    - parse_protocol
    - port
    - username
    - map_err
    - percent_encoding::percent_decode
    - as_bytes
    - decode_utf8
    - '&''static str::is_empty'
    - TcpListener::unwrap_or
    - Err
    - RedisError::from
    - parse::<i64>
    - fail
    - fragment
    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:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames: []
    argTypes:
    - url::Url
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 591
    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:595,1
    - Dst: url_to_tcp_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:596,1
    - Dst: url_to_unix_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:597,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 603
      start: 594
    functionDepth: 33
    functionLinenumber: 594
    functionLinenumberEnd: 603
    functionName: url::Url::into_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - url::Url::scheme
    - fail
    - url_to_unix_connection_info
    - url_to_tcp_connection_info
    linkageType: ''
    returnType: RedisResult
    signature: fn into_connection_info(self) -> RedisResult<ConnectionInfo>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:654,1
    - Dst: rustls::client::danger::ServerCertVerified::assertion
      Src: /src/redis-rs/redis/src/connection.rs:654,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: 655
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 655
    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:663,1
    - Dst: rustls::client::danger::HandshakeSignatureValid::assertion
      Src: /src/redis-rs/redis/src/connection.rs:663,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: 664
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 664
    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:672,1
    - Dst: rustls::client::danger::HandshakeSignatureValid::assertion
      Src: /src/redis-rs/redis/src/connection.rs:672,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: 673
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 673
    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:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 677
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 677
    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:683,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/connection.rs:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 684
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 684
    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: 703
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 703
    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:715,1
    - Dst: or_else
      Src: /src/redis-rs/redis/src/connection.rs:715,1
    - Dst: is_hostname_error
      Src: /src/redis-rs/redis/src/connection.rs:718,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:719,1
    - Dst: rustls::client::danger::ServerCertVerified::assertion
      Src: /src/redis-rs/redis/src/connection.rs:719,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:721,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: 724
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 724
    functionName: AcceptInvalidHostnamesCertVerifier::verify_server_cert
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - rustls::client::danger::ServerCertVerified::assertion
    - Err
    - Ok
    - verify_server_cert
    - is_hostname_error
    - or_else
    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:732,1
    - Dst: or_else
      Src: /src/redis-rs/redis/src/connection.rs:732,1
    - Dst: is_hostname_error
      Src: /src/redis-rs/redis/src/connection.rs:735,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:736,1
    - Dst: rustls::client::danger::HandshakeSignatureValid::assertion
      Src: /src/redis-rs/redis/src/connection.rs:736,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:738,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: 741
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 741
    functionName: AcceptInvalidHostnamesCertVerifier::verify_tls12_signature
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - verify_tls12_signature
    - rustls::client::danger::HandshakeSignatureValid::assertion
    - is_hostname_error
    - or_else
    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:749,1
    - Dst: or_else
      Src: /src/redis-rs/redis/src/connection.rs:749,1
    - Dst: is_hostname_error
      Src: /src/redis-rs/redis/src/connection.rs:752,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:753,1
    - Dst: rustls::client::danger::HandshakeSignatureValid::assertion
      Src: /src/redis-rs/redis/src/connection.rs:753,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:755,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: 758
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 758
    functionName: AcceptInvalidHostnamesCertVerifier::verify_tls13_signature
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - verify_tls13_signature
    - Err
    - Ok
    - rustls::client::danger::HandshakeSignatureValid::assertion
    - is_hostname_error
    - or_else
    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:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 762
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 762
    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:810,1
    - Dst: is_wildcard_address
      Src: /src/redis-rs/redis/src/connection.rs:812,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:813,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/connection.rs:818,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/connection.rs:820,1
    - Dst: ConnectionAddr::to_socket_addrs
      Src: /src/redis-rs/redis/src/connection.rs:824,1
    - Dst: connect_tcp_timeout
      Src: /src/redis-rs/redis/src/connection.rs:825,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:827,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:831,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:838,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:841,1
    - Dst: ActualConnection::Tcp
      Src: /src/redis-rs/redis/src/connection.rs:849,1
    - Dst: TlsConnector::builder
      Src: /src/redis-rs/redis/src/connection.rs:862,1
    - Dst: danger_accept_invalid_certs
      Src: /src/redis-rs/redis/src/connection.rs:862,1
    - Dst: danger_accept_invalid_hostnames
      Src: /src/redis-rs/redis/src/connection.rs:862,1
    - Dst: use_sni
      Src: /src/redis-rs/redis/src/connection.rs:862,1
    - Dst: build
      Src: /src/redis-rs/redis/src/connection.rs:862,1
    - Dst: TlsConnector::builder
      Src: /src/redis-rs/redis/src/connection.rs:868,1
    - Dst: danger_accept_invalid_hostnames
      Src: /src/redis-rs/redis/src/connection.rs:868,1
    - Dst: build
      Src: /src/redis-rs/redis/src/connection.rs:868,1
    - Dst: TlsConnector::new
      Src: /src/redis-rs/redis/src/connection.rs:872,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/connection.rs:874,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/connection.rs:877,1
    - Dst: connect
      Src: /src/redis-rs/redis/src/connection.rs:878,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:881,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/connection.rs:888,1
    - Dst: to_socket_addrs
      Src: /src/redis-rs/redis/src/connection.rs:888,1
    - Dst: connect_tcp_timeout
      Src: /src/redis-rs/redis/src/connection.rs:889,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:891,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:895,1
    - Dst: connect
      Src: /src/redis-rs/redis/src/connection.rs:900,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/connection.rs:900,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:902,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:905,1
    - Dst: ActualConnection::TcpNativeTls
      Src: /src/redis-rs/redis/src/connection.rs:913,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/connection.rs:913,1
    - Dst: create_rustls_config
      Src: /src/redis-rs/redis/src/connection.rs:926,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:926,1
    - Dst: rustls::ClientConnection::new
      Src: /src/redis-rs/redis/src/connection.rs:927,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:928,1
    - Dst: rustls::pki_types::ServerName::try_from
      Src: /src/redis-rs/redis/src/connection.rs:929,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/connection.rs:929,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/connection.rs:933,1
    - Dst: StreamOwned::new
      Src: /src/redis-rs/redis/src/connection.rs:934,1
    - Dst: to_socket_addrs
      Src: /src/redis-rs/redis/src/connection.rs:939,1
    - Dst: connect_tcp_timeout
      Src: /src/redis-rs/redis/src/connection.rs:940,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:942,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:946,1
    - Dst: StreamOwned::new
      Src: /src/redis-rs/redis/src/connection.rs:951,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:953,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:956,1
    - Dst: ActualConnection::TcpRustls
      Src: /src/redis-rs/redis/src/connection.rs:965,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/connection.rs:965,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:969,1
    - Dst: ActualConnection::Unix
      Src: /src/redis-rs/redis/src/connection.rs:975,1
    - Dst: UnixStream::connect
      Src: /src/redis-rs/redis/src/connection.rs:976,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:981,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 151
    argCount: 3
    argNames:
    - addr
    - timeout
    - tcp_settings
    argTypes:
    - '&ConnectionAddr'
    - Option<Duration>
    - '&TcpSettings'
    constantsTouched: []
    func_position:
      end: 988
      start: 805
    functionDepth: 34
    functionLinenumber: 805
    functionLinenumberEnd: 988
    functionName: ActualConnection::new
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - danger_accept_invalid_hostnames
    - Arc::new
    - to_owned
    - Ok
    - Some
    - clone
    - rustls::pki_types::ServerName::try_from
    - ActualConnection::Tcp
    - is_wildcard_address
    - connect
    - StreamOwned::new
    - as_str
    - unwrap
    - ActualConnection::TcpNativeTls
    - create_rustls_config
    - UnixStream::connect
    - connect_tcp_timeout
    - connect_tcp
    - TlsConnector::new
    - use_sni
    - to_socket_addrs
    - rustls::ClientConnection::new
    - TlsConnector::builder
    - ActualConnection::TcpRustls
    - ConnectionAddr::to_socket_addrs
    - danger_accept_invalid_certs
    - build
    - fail
    - ActualConnection::Unix
    - Box::new
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new(addr: &ConnectionAddr,timeout: Option<Duration>,tcp_settings:
      &TcpSettings,) -> RedisResult<ActualConnection>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_all
      Src: /src/redis-rs/redis/src/connection.rs:993,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:993,1
    - Dst: PathBuf::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/connection.rs:996,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:999,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1001,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/connection.rs:1006,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1006,1
    - Dst: PathBuf::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/connection.rs:1009,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1012,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1014,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/connection.rs:1019,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1019,1
    - Dst: PathBuf::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/connection.rs:1022,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1025,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1027,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/connection.rs:1032,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1032,1
    - Dst: PathBuf::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/connection.rs:1035,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1038,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1040,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 67
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1044
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1044
    functionName: ActualConnection::send_bytes
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Ok
    - PathBuf::is_unrecoverable_error
    - write_all
    - Err
    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:1049,1
    - Dst: get_ref
      Src: /src/redis-rs/redis/src/connection.rs:1054,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1054,1
    - Dst: get_ref
      Src: /src/redis-rs/redis/src/connection.rs:1059,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1059,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1063,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1066,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 1067
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1067
    functionName: ActualConnection::set_write_timeout
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - get_ref
    - set_write_timeout
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn set_write_timeout(&self, dur: Option<Duration>) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1072,1
    - Dst: get_ref
      Src: /src/redis-rs/redis/src/connection.rs:1077,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1077,1
    - Dst: get_ref
      Src: /src/redis-rs/redis/src/connection.rs:1082,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1082,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1086,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1089,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 1090
      start: 1069
    functionDepth: 1
    functionLinenumber: 1069
    functionLinenumberEnd: 1090
    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: 1102
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1102
    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:1111,1
    - Dst: bool::extend
      Src: /src/redis-rs/redis/src/connection.rs:1113,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/connection.rs:1113,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/connection.rs:1113,1
    - Dst: rustls_native_certs::load_native_certs
      Src: /src/redis-rs/redis/src/connection.rs:1120,1
    - Dst: pop
      Src: /src/redis-rs/redis/src/connection.rs:1121,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1122,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1122,1
    - Dst: bool::add
      Src: /src/redis-rs/redis/src/connection.rs:1125,1
    - Dst: rustls::ClientConfig::builder
      Src: /src/redis-rs/redis/src/connection.rs:1129,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/connection.rs:1131,1
    - Dst: Self::with_root_certificates
      Src: /src/redis-rs/redis/src/connection.rs:1132,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:1132,1
    - Dst: with_client_auth_cert
      Src: /src/redis-rs/redis/src/connection.rs:1139,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1139,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/connection.rs:1142,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:1145,1
    - Dst: with_no_client_auth
      Src: /src/redis-rs/redis/src/connection.rs:1149,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1163,1
    - Dst: Self::dangerous
      Src: /src/redis-rs/redis/src/connection.rs:1172,1
    - Dst: set_certificate_verifier
      Src: /src/redis-rs/redis/src/connection.rs:1172,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:1172,1
    - Dst: rustls::client::WebPkiServerVerifier::builder
      Src: /src/redis-rs/redis/src/connection.rs:1174,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:1174,1
    - Dst: build
      Src: /src/redis-rs/redis/src/connection.rs:1174,1
    - Dst: RedisResult::map_err
      Src: /src/redis-rs/redis/src/connection.rs:1174,1
    - Dst: rustls::Error::from
      Src: /src/redis-rs/redis/src/connection.rs:1178,1
    - Dst: rustls::OtherError
      Src: /src/redis-rs/redis/src/connection.rs:1178,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:1178,1
    - Dst: Self::with_root_certificates
      Src: /src/redis-rs/redis/src/connection.rs:1189,1
    - Dst: with_no_client_auth
      Src: /src/redis-rs/redis/src/connection.rs:1189,1
    - Dst: rustls::crypto::CryptoProvider::get_default
      Src: /src/redis-rs/redis/src/connection.rs:1199,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1200,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/connection.rs:1200,1
    - Dst: Self::dangerous
      Src: /src/redis-rs/redis/src/connection.rs:1205,1
    - Dst: set_certificate_verifier
      Src: /src/redis-rs/redis/src/connection.rs:1205,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:1207,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1211,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1214,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1219,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 102
    argCount: 2
    argNames:
    - insecure
    - tls_params
    argTypes:
    - bool
    - Option<TlsConnParams>
    constantsTouched: []
    func_position:
      end: 1221
      start: 1106
    functionDepth: 33
    functionLinenumber: 1106
    functionLinenumberEnd: 1221
    functionName: create_rustls_config
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - to_string
    - pop
    - with_client_auth_cert
    - Arc::new
    - Ok
    - rustls::Error::from
    - set_certificate_verifier
    - clone
    - into
    - rustls::crypto::CryptoProvider::get_default
    - bool::extend
    - map_err
    - Self::dangerous
    - rustls::client::WebPkiServerVerifier::builder
    - RootCertStore::empty
    - RedisResult::map_err
    - iter
    - Err
    - Self::with_root_certificates
    - with_no_client_auth
    - rustls::OtherError
    - RedisError::from
    - unwrap_or
    - cloned
    - bool::add
    - rustls_native_certs::load_native_certs
    - build
    - fail
    - rustls::ClientConfig::builder
    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:1228,1
    - Dst: RedisFuture::arg
      Src: /src/redis-rs/redis/src/connection.rs:1231,1
    - Dst: '&''static str::as_str'
      Src: /src/redis-rs/redis/src/connection.rs:1231,1
    - Dst: RedisFuture::arg
      Src: /src/redis-rs/redis/src/connection.rs:1234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - connection_info
    - check_username
    - password
    argTypes:
    - '&RedisConnectionInfo'
    - bool
    - '&str'
    constantsTouched: []
    func_position:
      end: 1236
      start: 1223
    functionDepth: 2
    functionLinenumber: 1223
    functionLinenumberEnd: 1236
    functionName: authenticate_cmd
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - cmd::cmd
    - '&''static str::as_str'
    - RedisFuture::arg
    linkageType: ''
    returnType: Cmd
    signature: 'fn authenticate_cmd(connection_info: &RedisConnectionInfo,check_username:
      bool,password: &str,) -> Cmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/connection.rs:1242,1
    - Dst: ActualConnection::new
      Src: /src/redis-rs/redis/src/connection.rs:1243,1
    - Dst: RedisResult::and_then
      Src: /src/redis-rs/redis/src/connection.rs:1250,1
    - Dst: RedisResult::checked_sub
      Src: /src/redis-rs/redis/src/connection.rs:1250,1
    - Dst: elapsed
      Src: /src/redis-rs/redis/src/connection.rs:1250,1
    - Dst: RedisResult::is_some
      Src: /src/redis-rs/redis/src/connection.rs:1252,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/connection.rs:1252,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1253,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/connection.rs:1253,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/src/connection.rs:1253,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1258,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1259,1
    - Dst: setup_connection
      Src: /src/redis-rs/redis/src/connection.rs:1261,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1269,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1270,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1272,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - connection_info
    - timeout
    argTypes:
    - '&ConnectionInfo'
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 1273
      start: 1238
    functionDepth: 35
    functionLinenumber: 1238
    functionLinenumberEnd: 1273
    functionName: connect
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 7
    functionsReached:
    - set_write_timeout
    - RedisResult::is_some
    - RedisError::from
    - set_read_timeout
    - std::io::Error::new
    - setup_connection
    - RedisResult::and_then
    - ActualConnection::new
    - Err
    - Ok
    - RedisResult::checked_sub
    - elapsed
    - is_none
    - Instant::now
    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:1288,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/src/connection.rs:1290,1
    - Dst: RedisResult::add_command
      Src: /src/redis-rs/redis/src/connection.rs:1291,1
    - Dst: commands::resp3_hello
      Src: /src/redis-rs/redis/src/connection.rs:1291,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1292,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/connection.rs:1293,1
    - Dst: RedisResult::add_command
      Src: /src/redis-rs/redis/src/connection.rs:1294,1
    - Dst: authenticate_cmd
      Src: /src/redis-rs/redis/src/connection.rs:1294,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/connection.rs:1297,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/connection.rs:1297,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1299,1
    - Dst: then
      Src: /src/redis-rs/redis/src/connection.rs:1304,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/connection.rs:1305,1
    - Dst: inspect
      Src: /src/redis-rs/redis/src/connection.rs:1304,1
    - Dst: RedisResult::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1307,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1307,1
    - Dst: impl Future::map
      Src: /src/redis-rs/redis/src/connection.rs:1311,1
    - Dst: RedisResult::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1312,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1312,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/connection.rs:1312,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/connection.rs:1316,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/connection.rs:1319,1
    - Dst: RedisResult::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1325,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1325,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/connection.rs:1325,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/connection.rs:1325,1
    - Dst: ignore
      Src: /src/redis-rs/redis/src/connection.rs:1325,1
    - Dst: RedisResult::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1331,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1331,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/connection.rs:1331,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/connection.rs:1331,1
    - Dst: ignore
      Src: /src/redis-rs/redis/src/connection.rs:1331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 91
    argCount: 3
    argNames:
    - connection_info
    - check_username
    - cache_config
    argTypes:
    - '&RedisConnectionInfo'
    - bool
    - Option<crate::caching::CacheConfig>
    constantsTouched: []
    func_position:
      end: 1349
      start: 1283
    functionDepth: 30
    functionLinenumber: 1283
    functionLinenumberEnd: 1349
    functionName: connection_setup_pipeline
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - RedisResult::cmd
    - inspect
    - authenticate_cmd
    - Some
    - as_ref
    - '&mut Cmd::arg'
    - is_some
    - cmd::pipe
    - arg
    - unwrap
    - RedisResult::add_command
    - then
    - redis::Cmd::arg
    - RedisResult::arg
    - impl Future::map
    - RedisResult::len
    - supports_resp3
    - commands::resp3_hello
    - ignore
    linkageType: ''
    returnType: (crate::Pipeline, ConnectionSetupComponents)
    signature: 'pub(crate) fn connection_setup_pipeline(connection_info: &RedisConnectionInfo,check_username:
      bool,#[cfg(feature = "cache-aio")] cache_config: Option<crate::caching::CacheConfig>,)
      -> (crate::Pipeline, ConnectionSetupComponents)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1353,1
    - Dst: get_resp3_hello_command_error
      Src: /src/redis-rs/redis/src/connection.rs:1353,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:1353,1
    - Dst: Self::into
      Src: /src/redis-rs/redis/src/connection.rs:1353,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - result
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1356
      start: 1351
    functionDepth: 33
    functionLinenumber: 1351
    functionLinenumberEnd: 1356
    functionName: check_resp3_auth
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Self::into
    - Ok
    - get_resp3_hello_command_error
    - clone
    - Err
    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:1367,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1371,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1372,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1371,1
    - Dst: details
      Src: /src/redis-rs/redis/src/connection.rs:1379,1
    - Dst: Option::ok_or
      Src: /src/redis-rs/redis/src/connection.rs:1379,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/connection.rs:1383,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1384,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1384,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - result
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1391
      start: 1364
    functionDepth: 1
    functionLinenumber: 1364
    functionLinenumberEnd: 1391
    functionName: check_resp2_auth
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - details
    - Option::ok_or
    - contains
    - Ok
    - Err
    - into
    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:1395,1
    - Dst: details
      Src: /src/redis-rs/redis/src/connection.rs:1398,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1399,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1400,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:1402,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1399,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1405,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1406,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1411
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1411
    functionName: check_db_select
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - to_string
    - details
    - Ok
    - Err
    - into
    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:1416,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1417,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1418,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - result
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1424
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1424
    functionName: check_caching
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - into
    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:1440,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1441,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1441,1
    - Dst: check_resp3_auth
      Src: /src/redis-rs/redis/src/connection.rs:1443,1
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/src/connection.rs:1445,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1446,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1446,1
    - Dst: check_resp2_auth
      Src: /src/redis-rs/redis/src/connection.rs:1448,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1449,1
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/src/connection.rs:1454,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1455,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1455,1
    - Dst: check_db_select
      Src: /src/redis-rs/redis/src/connection.rs:1457,1
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/src/connection.rs:1462,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1463,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1463,1
    - Dst: check_caching
      Src: /src/redis-rs/redis/src/connection.rs:1465,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1468,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 58
    argCount: 2
    argNames:
    - results
    argTypes:
    - Vec<Value>
    - ConnectionSetupComponents
    constantsTouched: []
    func_position:
      end: 1469
      start: 1426
    functionDepth: 43
    functionLinenumber: 1426
    functionLinenumberEnd: 1469
    functionName: check_connection_setup
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - check_resp3_auth
    - Err
    - Ok
    - check_caching
    - check_db_select
    - RedisResult::get
    - into
    - check_resp2_auth
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn check_connection_setup(results: Vec<Value>,ConnectionSetupComponents'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::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: RedisResult::get_packed_pipeline
      Src: /src/redis-rs/redis/src/aio/mod.rs:113,1
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/aio/mod.rs:115,1
    - Dst: '&mut T::next'
      Src: /src/redis-rs/redis/src/aio/mod.rs:117,1
    - Dst: ok_or_else
      Src: /src/redis-rs/redis/src/aio/mod.rs:117,1
    - Dst: RedisResult::push
      Src: /src/redis-rs/redis/src/aio/mod.rs:118,1
    - Dst: connection::check_connection_setup
      Src: /src/redis-rs/redis/src/aio/mod.rs:121,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - codec
    argTypes:
    - '&mut T'
    - (crate::Pipeline, ConnectionSetupComponents)
    constantsTouched: []
    func_position:
      end: 122
      start: 100
    functionDepth: 30
    functionLinenumber: 100
    functionLinenumberEnd: 122
    functionName: execute_connection_pipeline
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::len
    - connection::check_connection_setup
    - Ok
    - RedisResult::get_packed_pipeline
    - '&mut T::next'
    - Vec::with_capacity
    - RedisResult::push
    - ok_or_else
    - '&mut T::send'
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn execute_connection_pipeline<T>(codec: &mut T,(pipeline, instructions):
      (crate::Pipeline, ConnectionSetupComponents),) -> RedisResult<AuthResult>whereT:
      Sink<Vec<u8>, Error = RedisError>,T: Stream<Item = RedisResult<Value>>,T: Unpin
      + Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: execute_connection_pipeline
      Src: /src/redis-rs/redis/src/aio/mod.rs:134,1
    - Dst: connection_setup_pipeline
      Src: /src/redis-rs/redis/src/aio/mod.rs:136,1
    - Dst: execute_connection_pipeline
      Src: /src/redis-rs/redis/src/aio/mod.rs:146,1
    - Dst: connection_setup_pipeline
      Src: /src/redis-rs/redis/src/aio/mod.rs:148,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - codec
    - connection_info
    - cache_config
    argTypes:
    - '&mut T'
    - '&RedisConnectionInfo'
    - Option<crate::caching::CacheConfig>
    constantsTouched: []
    func_position:
      end: 159
      start: 124
    functionDepth: 31
    functionLinenumber: 124
    functionLinenumberEnd: 159
    functionName: setup_connection
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 1
    functionsReached:
    - execute_connection_pipeline
    - Ok
    - connection_setup_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:1555,1
    - Dst: ConnectionLike::req_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:1556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 1557
      start: 1554
    functionDepth: 42
    functionLinenumber: 1554
    functionLinenumberEnd: 1557
    functionName: ConnectionLike::req_command
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 2
    functionsReached:
    - ConnectionLike::req_packed_command
    - Cmd::get_packed_command
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_command(&mut self, cmd: &Cmd) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1567
    functionDepth: 0
    functionLinenumber: 1567
    functionLinenumberEnd: 1569
    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:1630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1626
    functionDepth: 1
    functionLinenumber: 1626
    functionLinenumberEnd: 1631
    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:1634,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/connection.rs:1635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1633
    functionDepth: 1
    functionLinenumber: 1633
    functionLinenumberEnd: 1643
    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:1657,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:1657,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1658,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:1658,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1661,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1662,1
    - Dst: Connection::recv_response
      Src: /src/redis-rs/redis/src/connection.rs:1674,1
    - Dst: len
      Src: /src/redis-rs/redis/src/connection.rs:1678,1
    - Dst: resp3_is_pub_sub_state_cleared
      Src: /src/redis-rs/redis/src/connection.rs:1680,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/connection.rs:1694,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1694,1
    - Dst: no_sub_err_is_pub_sub_state_cleared
      Src: /src/redis-rs/redis/src/connection.rs:1695,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1706,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1706,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/connection.rs:1709,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/connection.rs:1709,1
    - Dst: resp2_is_pub_sub_state_cleared
      Src: /src/redis-rs/redis/src/connection.rs:1710,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1720,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1720,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1732,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1649
    functionDepth: 42
    functionLinenumber: 1649
    functionLinenumberEnd: 1733
    functionName: Connection::clear_active_subscriptions
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - no_sub_err_is_pub_sub_state_cleared
    - len
    - Connection::recv_response
    - resp3_is_pub_sub_state_cleared
    - Connection::send_bytes
    - Value::Array
    - Ok
    - cmd::cmd
    - from_redis_value
    - kind
    - Some
    - Cmd::get_packed_command
    - resp2_is_pub_sub_state_cleared
    - Err
    - into
    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:1737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - push
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 1739
      start: 1735
    functionDepth: 1
    functionLinenumber: 1735
    functionLinenumberEnd: 1739
    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:1743,1
    - Dst: PushKind::clone
      Src: /src/redis-rs/redis/src/connection.rs:1744,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:1745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&RedisResult<Value>'
    constantsTouched: []
    func_position:
      end: 1748
      start: 1741
    functionDepth: 33
    functionLinenumber: 1741
    functionLinenumberEnd: 1748
    functionName: Connection::try_send
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - PushKind::clone
    - Connection::send_push
    - clone
    linkageType: ''
    returnType: void
    signature: 'fn try_send(&self, value: &RedisResult<Value>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Connection::send_push
      Src: /src/redis-rs/redis/src/connection.rs:1751,1
    - Dst: PushInfo::disconnect
      Src: /src/redis-rs/redis/src/connection.rs:1751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1750
    functionDepth: 2
    functionLinenumber: 1750
    functionLinenumberEnd: 1752
    functionName: Connection::send_disconnect
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Connection::send_push
    - PushInfo::disconnect
    linkageType: ''
    returnType: void
    signature: fn send_disconnect(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Connection::send_disconnect
      Src: /src/redis-rs/redis/src/connection.rs:1756,1
    - Dst: shutdown
      Src: /src/redis-rs/redis/src/connection.rs:1759,1
    - Dst: shutdown
      Src: /src/redis-rs/redis/src/connection.rs:1764,1
    - Dst: get_mut
      Src: /src/redis-rs/redis/src/connection.rs:1769,1
    - Dst: shutdown
      Src: /src/redis-rs/redis/src/connection.rs:1769,1
    - Dst: shutdown
      Src: /src/redis-rs/redis/src/connection.rs:1774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1754
    functionDepth: 3
    functionLinenumber: 1754
    functionLinenumberEnd: 1778
    functionName: Connection::close_connection
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - shutdown
    - get_mut
    - Connection::send_disconnect
    linkageType: ''
    returnType: void
    signature: fn close_connection(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_value
      Src: /src/redis-rs/redis/src/connection.rs:1786,1
    - Dst: parse_value
      Src: /src/redis-rs/redis/src/connection.rs:1791,1
    - Dst: parse_value
      Src: /src/redis-rs/redis/src/connection.rs:1796,1
    - Dst: parse_value
      Src: /src/redis-rs/redis/src/connection.rs:1800,1
    - Dst: Connection::try_send
      Src: /src/redis-rs/redis/src/connection.rs:1803,1
    - Dst: as_io_error
      Src: /src/redis-rs/redis/src/connection.rs:1812,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/connection.rs:1820,1
    - Dst: Connection::close_connection
      Src: /src/redis-rs/redis/src/connection.rs:1821,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 60
    argCount: 1
    argNames:
    - is_response
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1828
      start: 1782
    functionDepth: 34
    functionLinenumber: 1782
    functionLinenumberEnd: 1828
    functionName: Connection::read
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Connection::close_connection
    - Connection::try_send
    - parse_value
    - kind
    - as_io_error
    linkageType: ''
    returnType: RedisResult
    signature: 'fn read(&mut self, is_response: bool) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sender
    argTypes:
    - SyncPushSender
    constantsTouched: []
    func_position:
      end: 1833
      start: 1831
    functionDepth: 0
    functionLinenumber: 1831
    functionLinenumberEnd: 1833
    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:1836,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1837,1
    - Dst: RedisError::make_empty_command
      Src: /src/redis-rs/redis/src/connection.rs:1837,1
    - Dst: send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1839,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/src/connection.rs:1840,1
    - Dst: PathBuf::is_connection_dropped
      Src: /src/redis-rs/redis/src/connection.rs:1842,1
    - Dst: Connection::send_disconnect
      Src: /src/redis-rs/redis/src/connection.rs:1843,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1848
      start: 1835
    functionDepth: 3
    functionLinenumber: 1835
    functionLinenumberEnd: 1848
    functionName: Connection::send_bytes
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - Vec::is_empty
    - send_bytes
    - RedisError::make_empty_command
    - Connection::send_disconnect
    - Err
    - supports_resp3
    - PathBuf::is_connection_dropped
    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:1854,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1855,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1855,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/connection.rs:1855,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/src/connection.rs:1855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - channel
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1859
      start: 1853
    functionDepth: 28
    functionLinenumber: 1853
    functionLinenumberEnd: 1859
    functionName: Connection::subscribe_resp3
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - '&mut Cmd::exec'
    - cmd::cmd
    - '&mut Cmd::set_no_response'
    - Cmd::arg
    - check_resp3
    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:1865,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1866,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1866,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/connection.rs:1866,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/src/connection.rs:1866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pchannel
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1870
      start: 1864
    functionDepth: 28
    functionLinenumber: 1864
    functionLinenumberEnd: 1870
    functionName: Connection::psubscribe_resp3
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - '&mut Cmd::exec'
    - cmd::cmd
    - '&mut Cmd::set_no_response'
    - Cmd::arg
    - check_resp3
    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:1876,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1877,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1877,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/connection.rs:1877,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/src/connection.rs:1877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - channel
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1881
      start: 1875
    functionDepth: 28
    functionLinenumber: 1875
    functionLinenumberEnd: 1881
    functionName: Connection::unsubscribe_resp3
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - '&mut Cmd::exec'
    - cmd::cmd
    - '&mut Cmd::set_no_response'
    - Cmd::arg
    - check_resp3
    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:1887,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1888,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1888,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/connection.rs:1888,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/src/connection.rs:1888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pchannel
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1892
      start: 1886
    functionDepth: 28
    functionLinenumber: 1886
    functionLinenumberEnd: 1892
    functionName: Connection::punsubscribe_resp3
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - '&mut Cmd::exec'
    - cmd::cmd
    - '&mut Cmd::set_no_response'
    - Cmd::arg
    - check_resp3
    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:1898,1
    - Dst: Connection::exit_pubsub
      Src: /src/redis-rs/redis/src/connection.rs:1900,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1903,1
    - Dst: Cmd::is_no_response
      Src: /src/redis-rs/redis/src/connection.rs:1904,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1905,1
    - Dst: Connection::read
      Src: /src/redis-rs/redis/src/connection.rs:1908,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1913,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 1916
      start: 1897
    functionDepth: 42
    functionLinenumber: 1897
    functionLinenumberEnd: 1916
    functionName: Connection::req_command
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Connection::exit_pubsub
    - Connection::read
    - Connection::send_bytes
    - Ok
    - Cmd::is_no_response
    - Cmd::get_packed_command
    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:1919,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1922,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: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1932
      start: 1917
    functionDepth: 44
    functionLinenumber: 1917
    functionLinenumberEnd: 1932
    functionName: Connection::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Connection::read
    - Connection::exit_pubsub
    - Ok
    - Connection::send_bytes
    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:1941,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1943,1
    - Dst: Connection::read
      Src: /src/redis-rs/redis/src/connection.rs:1954,1
    - Dst: RedisResult::push
      Src: /src/redis-rs/redis/src/connection.rs:1958,1
    - Dst: push
      Src: /src/redis-rs/redis/src/connection.rs:1960,1
    - Dst: Value::ServerError
      Src: /src/redis-rs/redis/src/connection.rs:1960,1
    - Dst: push
      Src: /src/redis-rs/redis/src/connection.rs:1973,1
    - Dst: None::is_none
      Src: /src/redis-rs/redis/src/connection.rs:1977,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1978,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/connection.rs:1985,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1986,1
    - Dst: RedisError::make_aborted_transaction
      Src: /src/redis-rs/redis/src/connection.rs:1986,1
    - Dst: None::map_or
      Src: /src/redis-rs/redis/src/connection.rs:1989,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1989,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 60
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&[u8]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 1990
      start: 1934
    functionDepth: 44
    functionLinenumber: 1934
    functionLinenumberEnd: 1990
    functionName: Connection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Connection::exit_pubsub
    - RedisResult::is_empty
    - None::map_or
    - Value::ServerError
    - Connection::read
    - Connection::send_bytes
    - None::is_none
    - RedisError::make_aborted_transaction
    - Ok
    - RedisResult::push
    - push
    - Some
    - Err
    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: 1994
      start: 1992
    functionDepth: 0
    functionLinenumber: 1992
    functionLinenumberEnd: 1994
    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:1997,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/src/connection.rs:1997,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/connection.rs:1997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1996
    functionDepth: 2
    functionLinenumber: 1996
    functionLinenumberEnd: 1998
    functionName: Connection::check_connection
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - cmd::cmd
    - is_ok
    - query::<String>
    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:2001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 2000
    functionDepth: 1
    functionLinenumber: 2000
    functionLinenumberEnd: 2002
    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:2011,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 2012
      start: 2010
    functionDepth: 43
    functionLinenumber: 2010
    functionLinenumberEnd: 2012
    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:2020,1
    - Dst: req_packed_commands
      Src: /src/redis-rs/redis/src/connection.rs:2020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&[u8]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 2021
      start: 2014
    functionDepth: 47
    functionLinenumber: 2014
    functionLinenumberEnd: 2021
    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:2024,1
    - Dst: req_command
      Src: /src/redis-rs/redis/src/connection.rs:2024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 2025
      start: 2023
    functionDepth: 43
    functionLinenumber: 2023
    functionLinenumberEnd: 2025
    functionName: T::req_command
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - T::deref_mut
    - req_command
    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:2028,1
    - Dst: '&Self::Target::get_db'
      Src: /src/redis-rs/redis/src/connection.rs:2028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 2027
    functionDepth: 1
    functionLinenumber: 2027
    functionLinenumberEnd: 2029
    functionName: T::get_db
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - T::deref
    - '&Self::Target::get_db'
    linkageType: ''
    returnType: i64
    signature: fn get_db(&self) -> i64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::deref
      Src: /src/redis-rs/redis/src/connection.rs:2032,1
    - Dst: '&Self::Target::supports_pipelining'
      Src: /src/redis-rs/redis/src/connection.rs:2032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 2031
    functionDepth: 1
    functionLinenumber: 2031
    functionLinenumberEnd: 2033
    functionName: T::supports_pipelining
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - T::deref
    - '&Self::Target::supports_pipelining'
    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:2036,1
    - Dst: check_connection
      Src: /src/redis-rs/redis/src/connection.rs:2036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2035
    functionDepth: 1
    functionLinenumber: 2035
    functionLinenumberEnd: 2037
    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:2040,1
    - Dst: '&Self::Target::is_open'
      Src: /src/redis-rs/redis/src/connection.rs:2040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2039
    functionDepth: 1
    functionLinenumber: 2039
    functionLinenumberEnd: 2041
    functionName: T::is_open
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - T::deref
    - '&Self::Target::is_open'
    linkageType: ''
    returnType: bool
    signature: fn is_open(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValueCodec::default
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:388,1
    - Dst: Self::framed
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:388,1
    - Dst: super::setup_connection
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:389,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:396,1
    - Dst: PubSubSink::new
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:397,1
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:398,1
    - Dst: Self::spawn
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:398,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:399,1
    - Dst: SharedHandleContainer::new
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:399,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - connection_info
    - stream
    argTypes:
    - '&RedisConnectionInfo'
    - C
    constantsTouched: []
    func_position:
      end: 406
      start: 384
    functionDepth: 42
    functionLinenumber: 384
    functionLinenumberEnd: 406
    functionName: PubSub::new
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 2
    functionsReached:
    - tokio::sync::mpsc::unbounded_channel
    - SharedHandleContainer::new
    - Ok
    - PubSubSink::new
    - Self::spawn
    - super::setup_connection
    - Runtime::locate
    - Some
    - ValueCodec::default
    - Self::framed
    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:2078,1
    - Dst: Cmd::set_no_response
      Src: /src/redis-rs/redis/src/connection.rs:2079,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2081,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2081,1
    - Dst: recv_response
      Src: /src/redis-rs/redis/src/connection.rs:2084,1
    - Dst: Msg::from_value
      Src: /src/redis-rs/redis/src/connection.rs:2085,1
    - Dst: push_back
      Src: /src/redis-rs/redis/src/connection.rs:2086,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2088,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - cmd
    - is_sub_unsub
    argTypes:
    - '&mut Cmd'
    - bool
    constantsTouched: []
    func_position:
      end: 2091
      start: 2073
    functionDepth: 42
    functionLinenumber: 2073
    functionLinenumberEnd: 2091
    functionName: PubSub::cache_messages_until_received_response
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Msg::from_value
    - send_packed_command
    - recv_response
    - push_back
    - Ok
    - Cmd::get_packed_command
    - supports_resp3
    - Cmd::set_no_response
    linkageType: ''
    returnType: RedisResult
    signature: 'fn cache_messages_until_received_response(&mut self,cmd: &mut Cmd,is_sub_unsub:
      bool,) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 423
      start: 421
    functionDepth: 43
    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: 43
    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: 43
    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:2137,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2138,1
    - Dst: Msg::from_owned_value
      Src: /src/redis-rs/redis/src/connection.rs:2141,1
    - Dst: read
      Src: /src/redis-rs/redis/src/connection.rs:2141,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2136
    functionDepth: 32
    functionLinenumber: 2136
    functionLinenumberEnd: 2147
    functionName: PubSub::get_message
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 2
    functionsReached:
    - Msg::from_owned_value
    - pop_front
    - Ok
    - read
    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:2155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 2156
      start: 2154
    functionDepth: 1
    functionLinenumber: 2154
    functionLinenumberEnd: 2156
    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:2161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2162
      start: 2160
    functionDepth: 44
    functionLinenumber: 2160
    functionLinenumberEnd: 2162
    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:2170,1
    - Dst: impl combine::Parser::clone
      Src: /src/redis-rs/redis/src/connection.rs:2170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2171
      start: 2169
    functionDepth: 1
    functionLinenumber: 2169
    functionLinenumberEnd: 2171
    functionName: Msg::from_value
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - Self::from_owned_value
    - impl combine::Parser::clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_value(value: &Value) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_push_info
      Src: /src/redis-rs/redis/src/connection.rs:2180,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/connection.rs:2182,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/connection.rs:2182,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/connection.rs:2183,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/connection.rs:2184,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2184,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/connection.rs:2184,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2186,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2187,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:2189,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2189,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2190,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2191,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:2196,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 1
    argNames:
    - value
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2201
      start: 2174
    functionDepth: 41
    functionLinenumber: 2174
    functionLinenumberEnd: 2201
    functionName: Msg::from_owned_value
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - into_iter
    - from_redis_value
    - Result::ok
    - next
    - Some
    - Self::from_push_info
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_owned_value(value: Value) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/connection.rs:2209,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2211,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2212,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:2214,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2214,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2215,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2216,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:2221,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 1
    argNames:
    - push_info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 2226
      start: 2204
    functionDepth: 2
    functionLinenumber: 2204
    functionLinenumberEnd: 2226
    functionName: Msg::from_push_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - next
    - into_iter
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_push_info(push_info: PushInfo) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2230,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/connection.rs:2230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2231
      start: 2229
    functionDepth: 42
    functionLinenumber: 2229
    functionLinenumberEnd: 2231
    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:2239,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/connection.rs:2239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2237
    functionDepth: 0
    functionLinenumber: 2237
    functionLinenumberEnd: 2242
    functionName: Msg::get_channel_name
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - std::str::from_utf8
    - unwrap_or
    linkageType: ''
    returnType: '&str'
    signature: pub fn get_channel_name(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs: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: 42
    functionLinenumber: 2245
    functionLinenumberEnd: 2247
    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: 2257
      start: 2252
    functionDepth: 0
    functionLinenumber: 2252
    functionLinenumberEnd: 2257
    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:2263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2262
    functionDepth: 0
    functionLinenumber: 2262
    functionLinenumberEnd: 2264
    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:2271,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/connection.rs:2272,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/connection.rs:2273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2275
      start: 2270
    functionDepth: 42
    functionLinenumber: 2270
    functionLinenumberEnd: 2275
    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:2322,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:2322,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/src/connection.rs:2322,1
    - Dst: cmd::pipe
      Src: /src/redis-rs/redis/src/connection.rs:2323,1
    - Dst: func
      Src: /src/redis-rs/redis/src/connection.rs:2324,1
    - Dst: atomic
      Src: /src/redis-rs/redis/src/connection.rs:2324,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:2332,1
    - Dst: Cmd::exec
      Src: /src/redis-rs/redis/src/connection.rs:2332,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2333,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - con
    - keys
    - func
    argTypes:
    - '&mut C'
    - '&[K]'
    - F
    constantsTouched: []
    func_position:
      end: 2337
      start: 2310
    functionDepth: 28
    functionLinenumber: 2310
    functionLinenumberEnd: 2337
    functionName: transaction
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 3
    functionsReached:
    - func
    - Cmd::exec
    - atomic
    - Ok
    - '&mut Cmd::exec'
    - cmd::cmd
    - cmd::pipe
    - Cmd::arg
    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:2347,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: 2353
      start: 2341
    functionDepth: 0
    functionLinenumber: 2341
    functionLinenumberEnd: 2353
    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: 2368
      start: 2356
    functionDepth: 0
    functionLinenumber: 2356
    functionLinenumberEnd: 2368
    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:2375,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/connection.rs:2377,1
    - Dst: Option::starts_with
      Src: /src/redis-rs/redis/src/connection.rs:2378,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/connection.rs:2377,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/connection.rs:2381,1
    - Dst: Option::starts_with
      Src: /src/redis-rs/redis/src/connection.rs:2382,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/connection.rs:2381,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: 2385
      start: 2370
    functionDepth: 39
    functionLinenumber: 2370
    functionLinenumberEnd: 2385
    functionName: no_sub_err_is_pub_sub_state_cleared
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - details
    - unwrap_or_default
    - Option::starts_with
    - Option::map
    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:2389,1
    - Dst: Option::starts_with
      Src: /src/redis-rs/redis/src/connection.rs:2390,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:2391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - err
    argTypes:
    - RedisError
    constantsTouched: []
    func_position:
      end: 2399
      start: 2388
    functionDepth: 1
    functionLinenumber: 2388
    functionLinenumberEnd: 2399
    functionName: get_resp3_hello_command_error
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - detail
    - into
    - Option::starts_with
    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:2422,1
    - Dst: parse_redis_url
      Src: /src/redis-rs/redis/src/connection.rs:2423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2406
    functionDepth: 1
    functionLinenumber: 2406
    functionLinenumberEnd: 2430
    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:2484,1
    - Dst: url_to_tcp_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:2485,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:2485,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/connection.rs:2485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2433
    functionDepth: 43
    functionLinenumber: 2433
    functionLinenumberEnd: 2500
    functionName: tests::test_url_to_tcp_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap
    - into_iter
    - clone
    - url_to_tcp_connection_info
    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:2531,1
    - Dst: url_to_tcp_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:2532,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/src/connection.rs:2532,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:2534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2538
      start: 2503
    functionDepth: 43
    functionLinenumber: 2503
    functionLinenumberEnd: 2538
    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
    - into_iter
    - url_to_tcp_connection_info
    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:2613,1
    - Dst: url_to_unix_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:2619,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:2619,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/connection.rs:2619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2542
    functionDepth: 33
    functionLinenumber: 2542
    functionLinenumberEnd: 2634
    functionName: tests::test_url_to_unix_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap
    - into_iter
    - url_to_unix_connection_info
    - clone
    linkageType: ''
    returnType: void
    signature: fn test_url_to_unix_connection_info()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sha1::new
      Src: /src/redis-rs/redis/src/script.rs:36,1
    - Dst: update
      Src: /src/redis-rs/redis/src/script.rs:37,1
    - Dst: Option::as_bytes
      Src: /src/redis-rs/redis/src/script.rs:37,1
    - Dst: Option::to_string
      Src: /src/redis-rs/redis/src/script.rs:39,1
    - Dst: digest
      Src: /src/redis-rs/redis/src/script.rs:40,1
    - Dst: String::to_string
      Src: /src/redis-rs/redis/src/script.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - code
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 41
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: Script::new
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 10
    functionsReached:
    - update
    - String::to_string
    - Sha1::new
    - Option::to_string
    - digest
    - Option::as_bytes
    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: 29
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Script::load_cmd
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - as_bytes
    - cmd
    - Cmd::arg
    - '&mut 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: 30
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: Script::load
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - Cmd::query
    - Ok
    - Script::load_cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn load(&self, con: &mut dyn ConnectionLike) -> RedisResult<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Script::load_cmd
      Src: /src/redis-rs/redis/src/script.rs:73,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/src/script.rs:73,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/script.rs:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut C'
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 30
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: Script::load_async
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Cmd::query_async
    - Script::load_cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn load_async<C>(&self, con: &mut C) -> RedisResult<String>whereC:
      crate::aio::ConnectionLike,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/src/script.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: Script::key
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 2
    functionsReached:
    - to_redis_args
    linkageType: ''
    returnType: ScriptInvocation
    signature: 'pub fn key<T: ToRedisArgs>(&self, key: T) -> ScriptInvocation<''_>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/src/script.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: Script::arg
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 1
    functionsReached:
    - to_redis_args
    linkageType: ''
    returnType: ScriptInvocation
    signature: 'pub fn arg<T: ToRedisArgs>(&self, arg: T) -> ScriptInvocation<''_>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: Script::prepare_invoke
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ScriptInvocation
    signature: pub fn prepare_invoke(&self) -> ScriptInvocation<'_>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: invoke
      Src: /src/redis-rs/redis/src/script.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: Script::invoke
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - invoke
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn invoke<T: FromRedisValue>(&self, con: &mut dyn ConnectionLike)
      -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: invoke_async
      Src: /src/redis-rs/redis/src/script.rs:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut C'
    constantsTouched: []
    func_position:
      end: 138
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 138
    functionName: Script::invoke_async
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 1
    functionsReached:
    - invoke_async
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn invoke_async<C, T>(&self, con: &mut C) -> RedisResult<T>whereC:
      crate::aio::ConnectionLike,T: FromRedisValue,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/script.rs:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 27
    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: 27
    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: 44
    functionLinenumber: 177
    functionLinenumberEnd: 190
    functionName: ScriptInvocation::invoke
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - ScriptInvocation::load
    - ErrorKind::Server
    - Cmd::query
    - Ok
    - ScriptInvocation::eval_cmd
    - kind
    - Err
    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: 41
    functionLinenumber: 195
    functionLinenumberEnd: 215
    functionName: ScriptInvocation::invoke_async
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 3
    functionsReached:
    - ErrorKind::Server
    - Ok
    - ScriptInvocation::eval_cmd
    - ScriptInvocation::load_async
    - kind
    - Cmd::query_async
    - Err
    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: 43
    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: 31
    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: 43
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: ScriptInvocation::estimate_buflen
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - len
    - iter
    - PathBuf::len
    - fold
    - chain
    linkageType: ''
    returnType: usize
    signature: fn estimate_buflen(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/redis-rs/redis/src/script.rs:246,1
    - Dst: len
      Src: /src/redis-rs/redis/src/script.rs:246,1
    - Dst: Cmd::with_capacity
      Src: /src/redis-rs/redis/src/script.rs:247,1
    - Dst: ScriptInvocation::estimate_buflen
      Src: /src/redis-rs/redis/src/script.rs:247,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/script.rs:248,1
    - Dst: '&mut 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: 30
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: ScriptInvocation::eval_cmd
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 2
    functionsReached:
    - len
    - ScriptInvocation::estimate_buflen
    - as_bytes
    - arg
    - Cmd::arg
    - Cmd::with_capacity
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: Cmd
    signature: pub(crate) fn eval_cmd(&self) -> Cmd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Script::new
      Src: /src/redis-rs/redis/src/script.rs:263,1
    - Dst: key
      Src: /src/redis-rs/redis/src/script.rs:264,1
    - Dst: estimate_buflen
      Src: /src/redis-rs/redis/src/script.rs:265,1
    - Dst: eval_cmd
      Src: /src/redis-rs/redis/src/script.rs:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 262
    functionDepth: 42
    functionLinenumber: 262
    functionLinenumberEnd: 273
    functionName: tests::script_eval_should_work
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - eval_cmd
    - estimate_buflen
    - key
    - Script::new
    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: 20
    functionsReached:
    - Self::into
    - io::Error::from
    linkageType: ''
    returnType: Self
    signature: 'fn from(_: Elapsed) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&RedisError'
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: RedisError::eq
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, other: &RedisError) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:154,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:155,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: RedisError::source
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn source(&self) -> Option<&(dyn error::Error + 'static)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fmt
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:172,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:173,1
    - Dst: fmt::Debug::fmt
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:174,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:176,1
    - Dst: Option::fmt
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:177,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:179,1
    - Dst: std::fmt
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:182,1
    - Dst: std::fmt
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:183,1
    - Dst: std::fmt
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:184,1
    - Dst: len
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:186,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:187,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:189,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:192,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:200,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:203,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:206,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:214,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 77
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 217
      start: 169
    functionDepth: 30
    functionLinenumber: 169
    functionLinenumberEnd: 217
    functionName: RedisError::fmt
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - len
    - std::fmt
    - fmt::Debug::fmt
    - Ok
    - iter
    - write_str
    - Option::fmt
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> Result<(), fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:247,1
    - Dst: ErrorKind::Server
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:248,1
    - Dst: first
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:251,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:251,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:253,1
    - Dst: map
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:253,1
    - Dst: PushKind::into
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:253,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:251,1
    - Dst: ErrorKind::Server
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 242
    functionDepth: 39
    functionLinenumber: 242
    functionLinenumberEnd: 257
    functionName: RedisError::kind
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 1
    functionsReached:
    - first
    - PushKind::into
    - and_then
    - ErrorKind::Server
    - unwrap_or
    - kind
    - map
    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:262,1
    - Dst: map
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:262,1
    - Dst: Option::as_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:262,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:263,1
    - Dst: details
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 39
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: RedisError::detail
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - details
    - Option::as_str
    - Some
    - Option::as_ref
    - 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:271,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:272,1
    - Dst: PushKind::code
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:272,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:274,1
    - Dst: code
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 40
    functionLinenumber: 270
    functionLinenumberEnd: 278
    functionName: RedisError::code
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - RedisError::kind
    - code
    - Some
    - PushKind::code
    linkageType: ''
    returnType: Option
    signature: pub fn code(&self) -> Option<&str>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 281
    functionDepth: 40
    functionLinenumber: 281
    functionLinenumberEnd: 314
    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:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 40
    functionLinenumber: 317
    functionLinenumberEnd: 319
    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:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 326
    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: 337
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 337
    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:344,1
    - Dst: Option::is_some_and
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:344,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 355
    functionName: RedisError::is_connection_refusal
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - kind
    - Option::is_some_and
    - RedisError::as_io_error
    linkageType: ''
    returnType: bool
    signature: pub fn is_connection_refusal(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::as_io_error
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:360,1
    - Dst: Option::is_some_and
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 366
    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:370,1
    - Dst: Option::is_some_and
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 378
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 378
    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:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 392
    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:404,1
    - Dst: split_ascii_whitespace
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:404,1
    - Dst: next
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:405,1
    - Dst: parse
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:405,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:405,1
    - Dst: next
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:406,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:407,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 408
      start: 397
    functionDepth: 40
    functionLinenumber: 397
    functionLinenumberEnd: 408
    functionName: RedisError::redirect_node
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - ok
    - RedisError::detail
    - next
    - parse
    - Some
    - split_ascii_whitespace
    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:417,1
    - Dst: Value::retry_method
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:418,1
    - Dst: RedisError::as_io_error
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:436,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:436,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:438,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 454
      start: 416
    functionDepth: 40
    functionLinenumber: 416
    functionLinenumberEnd: 454
    functionName: RedisError::retry_method
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 1
    functionsReached:
    - RedisError::kind
    - unwrap_or
    - kind
    - Value::retry_method
    - RedisError::as_io_error
    - Option::map
    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:462,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:463,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:464,1
    - Dst: Arc::from
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 467
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 467
    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:471,1
    - Dst: Arc::from
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - errors
    argTypes:
    - Vec<(usize, ServerError)>
    constantsTouched: []
    func_position:
      end: 473
      start: 469
    functionDepth: 2
    functionLinenumber: 469
    functionLinenumberEnd: 473
    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:477,1
    - Dst: Arc::from
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - errs
    argTypes:
    - Vec<(usize, ServerError)>
    constantsTouched: []
    func_position:
      end: 479
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 479
    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:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 485
    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:503,1
    - Dst: '{

        ParsingError,

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

      ParsingError,

      errors::server_error::ServerError'
    - ErrorRepr::Server
    - Option::map
    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:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kind
    argTypes:
    - ServerErrorKind
    constantsTouched: []
    func_position:
      end: 545
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 545
    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:561,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - err
    argTypes:
    - RedisError
    constantsTouched: []
    func_position:
      end: 564
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 564
    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:573,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:573,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:573,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:573,1
    - Dst: redirect_node
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 580
      start: 572
    functionDepth: 43
    functionLinenumber: 572
    functionLinenumberEnd: 580
    functionName: tests::test_redirect_node
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap
    - redirect_node
    - parse_redis_value
    - extract_error
    - 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: 41
    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: 39
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: ServerError::details
    functionSourceFile: /src/redis-rs/redis/src/errors/server_error.rs
    functionUses: 0
    functionsReached:
    - Option::as_ref
    - as_str
    - 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:
    - fmt::Debug::fmt
    - Ok
    - write_str
    - Option::fmt
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParsingError::from
      Src: /src/redis-rs/redis/src/errors/mod.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: invalid_type_error_inner
    functionSourceFile: /src/redis-rs/redis/src/errors/mod.rs
    functionUses: 0
    functionsReached:
    - ParsingError::from
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/redis-rs/redis/src/errors/mod.rs:1,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: invalid_type_error
    functionSourceFile: /src/redis-rs/redis/src/errors/mod.rs
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/errors/mod.rs:27,1
    - Dst: io::Error::from
      Src: /src/redis-rs/redis/src/errors/mod.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: closed_connection_error
    functionSourceFile: /src/redis-rs/redis/src/errors/mod.rs
    functionUses: 1
    functionsReached:
    - 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:
    - set_tcp_keepalive
    - Ok
    - set_tcp_user_timeout
    - TcpStream::into
    - TcpStream::set_nodelay
    - into
    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:67,1
    - Dst: ErrorOrErrors::Errors
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:68,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - expectation
    argTypes:
    - Option<PipelineResponseExpectation>
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 41
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: ResponseAggregate::new
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - ErrorOrErrors::Errors
    - Vec::new
    linkageType: ''
    returnType: Self
    signature: 'fn new(expectation: Option<PipelineResponseExpectation>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_tuple
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:103,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:103,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    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:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - push_sender
    - info
    argTypes:
    - '&Option<Arc<dyn AsyncPushSender>>'
    - PushInfo
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 134
    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:137,1
    - Dst: PushInfo::disconnect
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - push_sender
    argTypes:
    - '&Option<Arc<dyn AsyncPushSender>>'
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: send_disconnect
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 2
    functionsReached:
    - send_push
    - PushInfo::disconnect
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn send_disconnect(push_sender: &Option<Arc<dyn AsyncPushSender>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VecDeque::new
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sink_stream
    - sender
    argTypes:
    - T
    - UnboundedSender<Msg>
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 41
    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:
    - PipelineSink::as_mut
    - is_closed
    - Poll::Ready
    - Err
    - project
    - handle_message
    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:183,1
    - Dst: PushKind::has_reply
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:186,1
    - Dst: Self::handle_push_value
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:189,1
    - Dst: send_push
      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:196,1
    - Dst: send_push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:197,1
    - Dst: PushKind::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:200,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:201,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:204,1
    - Dst: pop_front
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:209,1
    - Dst: take
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:216,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:217,1
    - Dst: push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:239,1
    - Dst: ErrorOrErrors::FirstError
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:241,1
    - Dst: push_front
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:248,1
    - Dst: push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:254,1
    - Dst: ErrorOrErrors::FirstError
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:258,1
    - Dst: len
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:263,1
    - Dst: push_front
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:265,1
    - Dst: std::mem::replace
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:270,1
    - Dst: ErrorOrErrors::Errors
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:270,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:270,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:272,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:273,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:273,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:273,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:275,1
    - Dst: RedisError::make_aborted_transaction
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:275,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:278,1
    - Dst: take
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:284,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:285,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 126
    argCount: 2
    argNames:
    - result
    argTypes:
    - Pin<&mut Self>
    - RedisResult<Value>
    constantsTouched: []
    func_position:
      end: 289
      start: 182
    functionDepth: 33
    functionLinenumber: 182
    functionLinenumberEnd: 289
    functionName: PipelineSink::send_result
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - push_front
    - len
    - Vec::new
    - Ok
    - Value::Array
    - clone
    - PushKind::has_reply
    - PipelineSink::project
    - RedisError::make_aborted_transaction
    - Self::handle_push_value
    - std::mem::take
    - pop_front
    - send
    - std::mem::replace
    - is_empty
    - push
    - Err
    - PushKind::clone
    - take
    - ErrorOrErrors::FirstError
    - send_push
    - ErrorOrErrors::Errors
    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:
    - poll_ready
    - project
    - map_err
    - PipelineSink::as_mut
    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
    - PipelineSink::as_mut
    - Ok
    - send
    - Err
    - project
    linkageType: ''
    returnType: Result
    signature: 'fn start_send(mut self: Pin<&mut Self>,PipelineMessage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PipelineSink::poll_read
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 217
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 217
    functionName: PipelineSink::poll_flush
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - PipelineSink::poll_read
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_flush(mut self: Pin<&mut Self>,cx: &mut task::Context,) ->
      Poll<Result<(), Self::Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:225,1
    - Dst: PipelineSink::as_mut
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:228,1
    - Dst: project
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:228,1
    - Dst: is_closed
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:230,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:231,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:231,1
    - Dst: PipelineSink::handle_message
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:236,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:239,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 241
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 241
    functionName: PipelineSink::poll_close
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - PipelineSink::as_mut
    - Ok
    - is_empty
    - Poll::Ready
    - is_closed
    - project
    - PipelineSink::handle_message
    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: Vec<u8>::is_empty
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:424,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:425,1
    - Dst: RedisError::make_empty_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:425,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:430,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:430,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:439,1
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:442,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:444,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:448,1
    - Dst: map_err
      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:453,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:453,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:457,1
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:461,1
    - Dst: Self::timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:461,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:463,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:463,1
    - Dst: into
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:463,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:460,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:467,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: 468
      start: 415
    functionDepth: 43
    functionLinenumber: 415
    functionLinenumberEnd: 468
    functionName: Pipeline::send_recv
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Self::timeout
    - map_err
    - unwrap_or_else
    - and_then
    - Ok
    - RedisError::make_empty_command
    - Runtime::locate
    - Some
    - send
    - Err
    - Vec<u8>::is_empty
    - into
    - oneshot::channel
    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: debug_struct
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:499,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:499,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:499,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 503
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 503
    functionName: MultiplexedConnection::fmt
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - finish
    - field
    - 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:516,1
    - Dst: AsyncConnectionConfig::default
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - connection_info
    - stream
    argTypes:
    - '&RedisConnectionInfo'
    - C
    constantsTouched: []
    func_position:
      end: 517
      start: 509
    functionDepth: 39
    functionLinenumber: 509
    functionLinenumberEnd: 517
    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:529,1
    - Dst: Self::framed
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:529,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:530,1
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:531,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:538,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:538,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:544,1
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:547,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:553,1
    - Dst: CacheManager::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:553,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:556,1
    - Dst: transpose
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:544,1
    - Dst: setup_connection
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:561,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: Pipeline::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:575,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:579,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:591,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 3
    argNames:
    - connection_info
    - stream
    - config
    argTypes:
    - '&RedisConnectionInfo'
    - C
    - AsyncConnectionConfig
    constantsTouched: []
    func_position:
      end: 592
      start: 521
    functionDepth: 43
    functionLinenumber: 521
    functionLinenumberEnd: 592
    functionName: MultiplexedConnection::new_with_config
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 1
    functionsReached:
    - is_some
    - check_resp3
    - Pipeline::new
    - setup_connection
    - transpose
    - Ok
    - CacheManager::new
    - clone
    - as_ref
    - ValueCodec::default
    - Self::framed
    - map
    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:597,1
    - Dst: SharedHandleContainer::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TaskHandle
    constantsTouched: []
    func_position:
      end: 598
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 598
    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:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - std::time::Duration
    constantsTouched: []
    func_position:
      end: 603
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 603
    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: Self::get_cached_cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:610,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:611,1
    - Dst: crate::Pipeline::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:613,1
    - Dst: pack_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:614,1
    - Dst: send_recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:616,1
    - Dst: RedisResult::get_packed_pipeline
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:619,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:620,1
    - Dst: len
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:622,1
    - Dst: Cmd::is_no_response
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:627,1
    - Dst: crate::types::from_redis_value
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:630,1
    - Dst: resolve
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:631,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:631,1
    - Dst: send_recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:636,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:638,1
    - Dst: Cmd::is_no_response
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:641,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 48
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 644
      start: 607
    functionDepth: 45
    functionLinenumber: 607
    functionLinenumberEnd: 644
    functionName: MultiplexedConnection::send_packed_command
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - len
    - send_recv
    - pack_command
    - into_iter
    - Cmd::get_packed_command
    - crate::Pipeline::new
    - Ok
    - Cmd::is_no_response
    - RedisResult::get_packed_pipeline
    - crate::types::from_redis_value
    - Some
    - resolve
    - 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: Self::get_cached_pipeline
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:658,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:659,1
    - Dst: resolve
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:660,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:660,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:660,1
    - Dst: send_recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:662,1
    - Dst: RedisResult::get_packed_pipeline
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:665,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:666,1
    - Dst: resolve
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:677,1
    - Dst: send_recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:679,1
    - Dst: Cmd::get_packed_pipeline
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:682,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:683,1
    - Dst: Cmd::is_transaction
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:686,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:694,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:695,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 697
      start: 649
    functionDepth: 42
    functionLinenumber: 649
    functionLinenumberEnd: 697
    functionName: MultiplexedConnection::send_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - RedisResult::is_empty
    - Self::get_cached_pipeline
    - send_recv
    - Vec::new
    - Value::Array
    - Cmd::get_packed_pipeline
    - RedisResult::get_packed_pipeline
    - Ok
    - Cmd::is_transaction
    - resolve
    - Some
    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:703,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:703,1
    - Dst: statistics
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 704
      start: 702
    functionDepth: 40
    functionLinenumber: 702
    functionLinenumberEnd: 704
    functionName: MultiplexedConnection::get_cache_statistics
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - map
    - statistics
    - as_ref
    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:709,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 710
      start: 708
    functionDepth: 46
    functionLinenumber: 708
    functionLinenumberEnd: 710
    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:718,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&''a crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 719
      start: 712
    functionDepth: 43
    functionLinenumber: 712
    functionLinenumberEnd: 719
    functionName: MultiplexedConnection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - boxed
    - MultiplexedConnection::send_packed_commands
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn req_packed_commands<''a>(&''a mut self,cmd: &''a crate::Pipeline,offset:
      usize,count: usize,) -> RedisFuture<''a, Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 723
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 723
    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:744,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:745,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:746,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:747,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:748,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 749
      start: 743
    functionDepth: 37
    functionLinenumber: 743
    functionLinenumberEnd: 749
    functionName: MultiplexedConnection::subscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - Ok
    - Cmd::arg
    - check_resp3
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn subscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:766,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:767,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:768,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:769,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 771
      start: 765
    functionDepth: 37
    functionLinenumber: 765
    functionLinenumberEnd: 771
    functionName: MultiplexedConnection::unsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - Ok
    - Cmd::arg
    - check_resp3
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn unsubscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:792,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:793,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:794,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:795,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:796,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 797
      start: 791
    functionDepth: 37
    functionLinenumber: 791
    functionLinenumberEnd: 797
    functionName: MultiplexedConnection::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - Ok
    - Cmd::arg
    - check_resp3
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn psubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:803,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:804,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:805,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:806,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 808
      start: 802
    functionDepth: 37
    functionLinenumber: 802
    functionLinenumberEnd: 808
    functionName: MultiplexedConnection::punsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - Ok
    - Cmd::arg
    - check_resp3
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn punsubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - 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: 2
    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:
    - drop
    - abort
    - take
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/redis-rs/redis/src/aio/runtime.rs:71,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/runtime.rs:71,1
    - Dst: HandleContainer::new
      Src: /src/redis-rs/redis/src/aio/runtime.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TaskHandle
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 42
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: SharedHandleContainer::new
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 2
    functionsReached:
    - HandleContainer::new
    - Self
    - Arc::new
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn new(handle: TaskHandle) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set
      Src: /src/redis-rs/redis/src/aio/runtime.rs:82,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/runtime.rs:82,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/aio/runtime.rs:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - Runtime
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 45
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: set_runtime
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 0
    functionsReached:
    - set
    - map_err
    - RedisError::from
    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: 46
    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: 46
    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: 44
    functionLinenumber: 108
    functionLinenumberEnd: 138
    functionName: Runtime::locate
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 4
    functionsReached:
    - get
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn locate() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate_tokio::Tokio::spawn
      Src: /src/redis-rs/redis/src/aio/runtime.rs:144,1
    - Dst: crate_smol::Smol::spawn
      Src: /src/redis-rs/redis/src/aio/runtime.rs:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - impl Future<Output = ()> + Send + 'static
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: Runtime::spawn
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 0
    functionsReached:
    - crate_smol::Smol::spawn
    - crate_tokio::Tokio::spawn
    linkageType: ''
    returnType: TaskHandle
    signature: 'pub(crate) fn spawn(&self, f: impl Future<Output = ()> + Send + ''static)
      -> TaskHandle'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::time::timeout
      Src: /src/redis-rs/redis/src/aio/runtime.rs:157,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/runtime.rs:157,1
    - Dst: Elapsed
      Src: /src/redis-rs/redis/src/aio/runtime.rs:159,1
    - Dst: F::timeout
      Src: /src/redis-rs/redis/src/aio/runtime.rs:161,1
    - Dst: ok_or
      Src: /src/redis-rs/redis/src/aio/runtime.rs:161,1
    - Dst: Elapsed
      Src: /src/redis-rs/redis/src/aio/runtime.rs:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - duration
    - future
    argTypes:
    - Duration
    - F
    constantsTouched: []
    func_position:
      end: 163
      start: 150
    functionDepth: 31
    functionLinenumber: 150
    functionLinenumberEnd: 163
    functionName: Runtime::timeout
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 0
    functionsReached:
    - map_err
    - tokio::time::timeout
    - Elapsed
    - ok_or
    - F::timeout
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) async fn timeout<F: Future>(&self,duration: Duration,future:
      F,) -> Result<F::Output, Elapsed>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/aio/runtime.rs:170,1
    - Dst: smol::Timer::after
      Src: /src/redis-rs/redis/src/aio/runtime.rs:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - duration
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 178
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 178
    functionName: Runtime::sleep
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 0
    functionsReached:
    - smol::Timer::after
    - tokio::time::sleep
    linkageType: ''
    returnType: void
    signature: 'pub(crate) async fn sleep(&self, duration: Duration)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::locate
      Src: /src/redis-rs/redis/src/aio/runtime.rs:182,1
    - Dst: Self::sleep
      Src: /src/redis-rs/redis/src/aio/runtime.rs:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - duration
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 45
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: Runtime::locate_and_sleep
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 0
    functionsReached:
    - Self::sleep
    - Self::locate
    linkageType: ''
    returnType: void
    signature: 'pub(crate) async fn locate_and_sleep(duration: Duration)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:63,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:64,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:64,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:64,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:64,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:64,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:64,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:64,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:64,1
    - Dst: Self::is_some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:73,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:81,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 84
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 84
    functionName: ConnectionManagerConfig::fmt
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Self::is_some
    - finish
    - field
    - debug_struct
    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:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 43
    functionLinenumber: 93
    functionLinenumberEnd: 95
    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: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    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: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    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: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    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: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    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: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    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: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    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: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    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:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    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: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    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:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - time
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: ConnectionManagerConfig::set_max_delay
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 2
    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: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    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: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    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: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    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: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    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:209,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sender
    argTypes:
    - impl AsyncPushSender
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 42
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: ConnectionManagerConfig::set_push_sender
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 1
    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: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    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:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cache_config
    argTypes:
    - crate::caching::CacheConfig
    constantsTouched: []
    func_position:
      end: 226
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 226
    functionName: ConnectionManagerConfig::set_cache_config
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_cache_config(self, cache_config: crate::caching::CacheConfig)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 243
    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:297,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:297,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:297,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: ConnectionManager::fmt
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - finish
    - field
    - 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: 316
      start: 308
    functionDepth: 47
    functionLinenumber: 308
    functionLinenumberEnd: 316
    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: 329
      start: 320
    functionDepth: 48
    functionLinenumber: 320
    functionLinenumberEnd: 329
    functionName: reconnect_if_io_error
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Err
    - Self::reconnect
    - Arc::downgrade
    - PathBuf::is_io_error
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:337,1
    - Dst: Self::new_with_config
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - client
    argTypes:
    - Client
    constantsTouched: []
    func_position:
      end: 340
      start: 336
    functionDepth: 44
    functionLinenumber: 336
    functionLinenumberEnd: 340
    functionName: ConnectionManager::new
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 1
    functionsReached:
    - Self::new_with_config
    - ConnectionManagerConfig::new
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn new(client: Client) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:358,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:360,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:361,1
    - Dst: into
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:361,1
    - Dst: ExponentialBuilder::default
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:364,1
    - Dst: Self::with_factor
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:364,1
    - Dst: with_min_delay
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:364,1
    - Dst: with_max_times
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:364,1
    - Dst: with_jitter
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:364,1
    - Dst: with_max_delay
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:370,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:373,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:373,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:373,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:378,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:378,1
    - Dst: CacheManager::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:381,1
    - Dst: Self::as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:383,1
    - Dst: Self::set_cache_manager
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:384,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:384,1
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:387,1
    - Dst: HandleContainer::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:388,1
    - Dst: tokio::runtime::Runtime::spawn
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:389,1
    - Dst: Self::check_for_disconnect_pushes
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:389,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:393,1
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:394,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:399,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:400,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:400,1
    - Dst: Self::set_push_sender_internal
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:403,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:403,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:404,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:405,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:406,1
    - Dst: Self::set_push_sender_internal
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:409,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:409,1
    - Dst: Self::new_connection
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:413,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:415,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:415,1
    - Dst: SubscriptionTracker::default
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:415,1
    - Dst: Self
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:420,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:420,1
    - Dst: ArcSwap::from_pointee
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:422,1
    - Dst: future::ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:422,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:422,1
    - Dst: shared
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:422,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:433,1
    - Dst: Arc::downgrade
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:435,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:433,1
    - Dst: crate::RedisError::from
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:440,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:447,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 131
    argCount: 2
    argNames:
    - client
    - config
    argTypes:
    - Client
    - ConnectionManagerConfig
    constantsTouched: []
    func_position:
      end: 448
      start: 353
    functionDepth: 45
    functionLinenumber: 353
    functionLinenumberEnd: 448
    functionName: ConnectionManager::new_with_config
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 3
    functionsReached:
    - crate::RedisError::from
    - Arc::downgrade
    - Arc::new
    - Ok
    - ExponentialBuilder::default
    - Self
    - Runtime::locate
    - clone
    - as_ref
    - Some
    - future::ok
    - check_resp3
    - into
    - shared
    - Self::check_for_disconnect_pushes
    - Self::set_response_timeout
    - Self::as_ref
    - with_max_times
    - send
    - is_none
    - HandleContainer::new
    - oneshot::channel
    - map
    - ArcSwap::from_pointee
    - map_err
    - Self::set_connection_timeout
    - with_max_delay
    - AsyncConnectionConfig::new
    - tokio::runtime::Runtime::spawn
    - tokio::sync::mpsc::unbounded_channel
    - Self::set_push_sender_internal
    - Self::set_cache_manager
    - CacheManager::new
    - Err
    - Self::new_connection
    - Self::clone
    - Mutex::new
    - Self::with_factor
    - boxed
    - with_jitter
    - SubscriptionTracker::default
    - supports_resp3
    - with_min_delay
    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:456,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:458,1
    - Dst: retry
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:462,1
    - Dst: sleep
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:462,1
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:464,1
    - Dst: Self::sleep
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:464,1
    - Dst: RedisResult::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:468,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:470,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: 471
      start: 450
    functionDepth: 41
    functionLinenumber: 450
    functionLinenumberEnd: 471
    functionName: ConnectionManager::new_connection
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - sleep
    - Self::clone
    - RedisResult::exec_async
    - Ok
    - Self::sleep
    - Runtime::locate
    - retry
    - get_multiplexed_async_connection_with_config
    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:481,1
    - Dst: Weak<Internals>::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:484,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:486,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:488,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:490,1
    - Dst: RedisResult::clone_and_increase_epoch
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:491,1
    - Dst: set_cache_manager
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:492,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:496,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:497,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:497,1
    - Dst: Self::new_connection
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:505,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:512,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:494,1
    - Dst: shared
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:494,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:518,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:518,1
    - Dst: compare_and_swap
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:519,1
    - Dst: Arc::ptr_eq
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:524,1
    - Dst: spawn
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:526,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:526,1
    - Dst: detach
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:526,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: 528
      start: 477
    functionDepth: 41
    functionLinenumber: 477
    functionLinenumberEnd: 528
    functionName: ConnectionManager::reconnect
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Weak<Internals>::upgrade
    - compare_and_swap
    - Arc::new
    - RedisResult::clone_and_increase_epoch
    - Ok
    - clone
    - as_ref
    - Some
    - lock
    - shared
    - set_cache_manager
    - Weak<Internals>::clone
    - spawn
    - map
    - Arc::ptr_eq
    - get_subscription_pipeline
    - detach
    - Self::new_connection
    - boxed
    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:540,1
    - Dst: upgrade
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:542,1
    - Dst: Self::reconnect
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:545,1
    - Dst: Arc::downgrade
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:545,1
    - Dst: load
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:545,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:547,1
    - Dst: Self::send
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:548,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: 551
      start: 530
    functionDepth: 44
    functionLinenumber: 530
    functionLinenumberEnd: 551
    functionName: ConnectionManager::check_for_disconnect_pushes
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Arc::downgrade
    - as_ref
    - Self::send
    - Self::reconnect
    - recv
    - 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:557,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:558,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:558,1
    - Dst: PathBuf::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:558,1
    - Dst: reconnect_if_io_error
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:559,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:560,1
    - Dst: reconnect_if_dropped
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 563
      start: 555
    functionDepth: 44
    functionLinenumber: 555
    functionLinenumberEnd: 563
    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
    - map_err
    - reconnect_if_dropped
    - PathBuf::clone
    - clone
    - load
    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:575,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:576,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:576,1
    - Dst: PathBuf::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:576,1
    - Dst: reconnect_if_io_error
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:577,1
    - Dst: send_packed_commands
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:578,1
    - Dst: reconnect_if_dropped
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 583
      start: 568
    functionDepth: 44
    functionLinenumber: 568
    functionLinenumberEnd: 583
    functionName: ConnectionManager::send_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - reconnect_if_io_error
    - map_err
    - reconnect_if_dropped
    - PathBuf::clone
    - send_packed_commands
    - clone
    - 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: to_redis_args
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:593,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:593,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:594,1
    - Dst: update_with_request
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - action
    - args
    argTypes:
    - SubscriptionAction
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 598
      start: 585
    functionDepth: 44
    functionLinenumber: 585
    functionLinenumberEnd: 598
    functionName: ConnectionManager::update_subscription_tracker
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - to_redis_args
    - into_iter
    - lock
    - update_with_request
    linkageType: ''
    returnType: void
    signature: 'async fn update_subscription_tracker(&self,action: SubscriptionAction,args:
      impl ToRedisArgs,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:621,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:622,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:623,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:624,1
    - Dst: ConnectionManager::update_subscription_tracker
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:625,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:628,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 629
      start: 620
    functionDepth: 37
    functionLinenumber: 620
    functionLinenumberEnd: 629
    functionName: ConnectionManager::subscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - ConnectionManager::update_subscription_tracker
    - Cmd::exec_async
    - Ok
    - Cmd::arg
    - check_resp3
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn subscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:635,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:636,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:637,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:638,1
    - Dst: ConnectionManager::update_subscription_tracker
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:639,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:641,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 642
      start: 634
    functionDepth: 37
    functionLinenumber: 634
    functionLinenumberEnd: 642
    functionName: ConnectionManager::unsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - ConnectionManager::update_subscription_tracker
    - Cmd::exec_async
    - Ok
    - Cmd::arg
    - check_resp3
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn unsubscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:665,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:666,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:667,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:668,1
    - Dst: ConnectionManager::update_subscription_tracker
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:669,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:671,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 672
      start: 664
    functionDepth: 37
    functionLinenumber: 664
    functionLinenumberEnd: 672
    functionName: ConnectionManager::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - ConnectionManager::update_subscription_tracker
    - Cmd::exec_async
    - Ok
    - Cmd::arg
    - check_resp3
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn psubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:678,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:679,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:680,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:681,1
    - Dst: ConnectionManager::update_subscription_tracker
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:682,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 685
      start: 677
    functionDepth: 37
    functionLinenumber: 677
    functionLinenumberEnd: 685
    functionName: ConnectionManager::punsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - ConnectionManager::update_subscription_tracker
    - Cmd::exec_async
    - Ok
    - Cmd::arg
    - check_resp3
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn punsubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:691,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:691,1
    - Dst: statistics
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 692
      start: 690
    functionDepth: 44
    functionLinenumber: 690
    functionLinenumberEnd: 692
    functionName: ConnectionManager::get_cache_statistics
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - map
    - statistics
    - as_ref
    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:697,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 698
      start: 696
    functionDepth: 45
    functionLinenumber: 696
    functionLinenumberEnd: 698
    functionName: ConnectionManager::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - boxed
    - ConnectionManager::send_packed_command
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn req_packed_command<''a>(&''a mut self, cmd: &''a Cmd) -> RedisFuture<''a,
      Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionManager::send_packed_commands
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:706,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&''a crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 707
      start: 700
    functionDepth: 45
    functionLinenumber: 700
    functionLinenumberEnd: 707
    functionName: ConnectionManager::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - boxed
    - ConnectionManager::send_packed_commands
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn req_packed_commands<''a>(&''a mut self,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:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 711
      start: 709
    functionDepth: 45
    functionLinenumber: 709
    functionLinenumberEnd: 711
    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: 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:
    - PushKind::has_reply
    - PipelineSink::project
    - Err
    - Ok
    - Value::Array
    - Msg::from_push_info
    - is_unrecoverable_error
    - pop_front
    - impl combine::Parser::first
    - send
    - Msg::from_owned_value
    linkageType: ''
    returnType: Result
    signature: 'fn handle_message(self: Pin<&mut Self>, result: RedisResult<Value>)
      -> Result<(), ()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:254,1
    - Dst: PipelineSink::new
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:255,1
    - Dst: stream::poll_fn
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:256,1
    - Dst: "(\n        PendingRequest::poll_recv"
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:257,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:256,1
    - Dst: forward
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:256,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - sink_stream
    - messages_sender
    argTypes:
    - T
    - UnboundedSender<Msg>
    constantsTouched: []
    func_position:
      end: 268
      start: 245
    functionDepth: 43
    functionLinenumber: 245
    functionLinenumberEnd: 268
    functionName: PubSubSink::new
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 1
    functionsReached:
    - "(\n        PendingRequest::poll_recv"
    - forward
    - stream::poll_fn
    - tokio::sync::mpsc::unbounded_channel
    - PipelineSink::new
    - map
    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:
    - map_err
    - send
    - Err
    - oneshot::channel
    - closed_connection_error
    linkageType: ''
    returnType: Result
    signature: 'async fn send_recv(&mut self, input: Vec<u8>) -> Result<Value, RedisError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:298,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:298,1
    - Dst: '&mut Cmd::get_packed_command'
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:298,1
    - Dst: PubSubSink::send_recv
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:299,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 37
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: PubSubSink::subscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - PubSubSink::send_recv
    - '&mut Cmd::get_packed_command'
    - Cmd::arg
    - cmd
    - map
    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:
    - PubSubSink::send_recv
    - '&mut Cmd::get_packed_command'
    - Cmd::arg
    - cmd
    - map
    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:
    - PubSubSink::send_recv
    - '&mut Cmd::get_packed_command'
    - Cmd::arg
    - cmd
    - map
    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:
    - PubSubSink::send_recv
    - '&mut Cmd::get_packed_command'
    - Cmd::arg
    - cmd
    - map
    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:
    - Ok
    - PubSubSink::send_recv
    - from_redis_value
    - '&mut Cmd::get_packed_command'
    - Cmd::arg
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn ping_message<T: FromRedisValue>(&mut self,message: impl
      ToRedisArgs,) -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:367,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:367,1
    - Dst: PubSubSink::send_recv
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:368,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:369,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 37
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: PubSubSink::ping
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - Ok
    - PubSubSink::send_recv
    - from_redis_value
    - Cmd::get_packed_command
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn ping<T: FromRedisValue>(&mut self) -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: PubSub::on_message
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: impl Stream
    signature: pub fn on_message(&mut self) -> impl Stream<Item = Msg> + '_
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 503
    functionName: PubSub::into_on_message
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PubSubStream
    signature: pub fn into_on_message(self) -> PubSubStream
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 509
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 509
    functionName: PubSub::split
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (PubSubSink, PubSubStream)
    signature: pub fn split(self) -> (PubSubSink, PubSubStream)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PubSubStream::project
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:516,1
    - Dst: poll_recv
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context<''_>'
    constantsTouched: []
    func_position:
      end: 517
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 517
    functionName: PubSubStream::poll_next
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - poll_recv
    - PubSubStream::project
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_next(self: Pin<&mut Self>, cx: &mut task::Context<''_>) ->
      Poll<Option<Self::Item>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:64,1
    - Dst: RedisServer::poll_write
      Src: /src/redis-rs/redis/src/aio/tokio.rs:64,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:66,1
    - Dst: RedisServer::poll_write
      Src: /src/redis-rs/redis/src/aio/tokio.rs:66,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:68,1
    - Dst: RedisServer::poll_write
      Src: /src/redis-rs/redis/src/aio/tokio.rs:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - cx
    - buf
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 42
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: Tokio::poll_write
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - 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: 42
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: Tokio::poll_flush
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - RedisServer::poll_flush
    - Pin::new
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_flush(mut self: Pin<&mut Self>, cx: &mut task::Context) ->
      Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:84,1
    - Dst: RedisServer::poll_shutdown
      Src: /src/redis-rs/redis/src/aio/tokio.rs:84,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:86,1
    - Dst: RedisServer::poll_shutdown
      Src: /src/redis-rs/redis/src/aio/tokio.rs:86,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:88,1
    - Dst: RedisServer::poll_shutdown
      Src: /src/redis-rs/redis/src/aio/tokio.rs:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 42
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: Tokio::poll_shutdown
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - RedisServer::poll_shutdown
    - Pin::new
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_shutdown(mut self: Pin<&mut Self>, cx: &mut task::Context)
      -> Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:100,1
    - Dst: RedisServer::poll_read
      Src: /src/redis-rs/redis/src/aio/tokio.rs:100,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:102,1
    - Dst: RedisServer::poll_read
      Src: /src/redis-rs/redis/src/aio/tokio.rs:102,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:104,1
    - Dst: RedisServer::poll_read
      Src: /src/redis-rs/redis/src/aio/tokio.rs:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - cx
    - buf
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    - '&mut ReadBuf<''_>'
    constantsTouched: []
    func_position:
      end: 106
      start: 94
    functionDepth: 42
    functionLinenumber: 94
    functionLinenumberEnd: 106
    functionName: Tokio::poll_read
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - RedisServer::poll_read
    - Pin::new
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_read(mut self: Pin<&mut Self>,cx: &mut task::Context,buf:
      &mut ReadBuf<''_>,) -> Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/tokio.rs:114,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/aio/tokio.rs:114,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/tokio.rs:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - socket_addr
    - tcp_settings
    argTypes:
    - SocketAddr
    - '&crate::io::tcp::TcpSettings'
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 45
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: Tokio::connect_tcp
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - connect_tcp
    - Ok
    - map
    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: 45
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: Tokio::connect_tcp_tls
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - connection::create_rustls_config
    - TlsConnector::from
    - to_owned
    - Ok
    - '&Option<TlsConnParams>::clone'
    - connect_tcp
    - rustls::pki_types::ServerName::try_from
    - Self::connect
    - Tokio::TcpTls
    - Box::new
    - map
    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
    - Ok
    - map
    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: 43
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: Monitor::new
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 1
    functionsReached:
    - Cmd::get_packed_command
    - Ok
    - next
    - super::setup_connection
    - send
    - ok_or_else
    - ValueCodec::default
    - Self::framed
    - cmd
    - Box::new
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) async fn new<C>(connection_info: &RedisConnectionInfo,stream:
      C,) -> RedisResult<Self>whereC: Unpin + AsyncRead + AsyncWrite + Send + Sync
      + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: Monitor::on_message
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: impl Stream
    signature: 'pub fn on_message<''a, T: FromRedisValue + ''a>(&''a mut self) ->
      impl Stream<Item = T> + ''a'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: Monitor::into_on_message
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: impl Stream
    signature: 'pub fn into_on_message<T: FromRedisValue>(self) -> impl Stream<Item
      = T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl combine::Parser::ok
      Src: /src/redis-rs/redis/src/aio/monitor.rs:72,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/aio/monitor.rs:72,1
    - Dst: T::from_redis_value
      Src: /src/redis-rs/redis/src/aio/monitor.rs:72,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/aio/monitor.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - RedisResult<Value>
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 45
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: convert_value
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 0
    functionsReached:
    - and_then
    - Result::ok
    - impl combine::Parser::ok
    - T::from_redis_value
    linkageType: ''
    returnType: Option
    signature: 'fn convert_value<T>(value: RedisResult<Value>) -> Option<T>whereT:
      FromRedisValue,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/aio/monitor.rs:82,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/aio/monitor.rs:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: MonitorStream::poll_next
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 0
    functionsReached:
    - and_then
    - Poll::Ready
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<''_>) -> Poll<Option<Self::Item>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/aio/monitor.rs:99,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/aio/monitor.rs:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: MonitorStreamRef::poll_next
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 0
    functionsReached:
    - and_then
    - Poll::Ready
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<''_>) -> Poll<Option<Self::Item>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/aio/mod.rs:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: RedisRuntime::boxed
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 0
    functionsReached:
    - Box::pin
    linkageType: ''
    returnType: Pin
    signature: fn boxed(self) -> Pin<Box<dyn AsyncStream + Send + Sync>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::tokio::sync::mpsc::UnboundedSender::send
      Src: /src/redis-rs/redis/src/aio/mod.rs: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:
    - ::tokio::sync::mpsc::UnboundedSender::send
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn send(&self, info: PushInfo) -> Result<(), SendError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::tokio::sync::broadcast::Sender::send
      Src: /src/redis-rs/redis/src/aio/mod.rs: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:
    - Err
    - ::tokio::sync::broadcast::Sender::send
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn send(&self, info: PushInfo) -> Result<(), SendError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs: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:
    - RedisResult::map
    - into_iter
    - Ok
    - Box::pin
    - get_socket_addrs
    - Box::new
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn resolve<''a, ''b: ''a>(&''a self,host: &''b str,port: u16,) ->
      RedisFuture<''a, Box<dyn Iterator<Item = SocketAddr> + Send + ''a>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/mod.rs: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: 45
    functionLinenumber: 248
    functionLinenumberEnd: 270
    functionName: get_socket_addrs
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 1
    functionsReached:
    - RedisResult::is_empty
    - map_err
    - RedisError::from
    - collect
    - Ok
    - ::tokio::net::lookup_host
    - Runtime::locate
    - Err
    - ::smol::net::resolve
    - map
    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: 47
    functionLinenumber: 10
    functionLinenumberEnd: 66
    functionName: connect_simple
    functionSourceFile: /src/redis-rs/redis/src/aio/connection.rs
    functionUses: 0
    functionsReached:
    - RedisResult::map
    - <T>::connect_unix
    - Ok
    - Box::pin
    - <T>::connect_tcp_tls
    - <T>::connect_tcp
    - fail
    - futures_util::future::select_ok
    - Self::resolve
    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::<ConnectionManager>
    - assert_sync::<cluster_async::ClusterConnection>
    - assert_sync::<Monitor>
    - assert_sync::<PubSub>
    - assert_sync::<MultiplexedConnection>
    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:
    - std::task::Poll::Ready
    - Ok
    - '&mut core::task::Context::advance'
    linkageType: ''
    returnType: std::task::Poll
    signature: 'fn poll_read(self: Pin<&mut Self>,cx: &mut core::task::Context,buf:
      &mut ReadBuf<''_>,) -> std::task::Poll<Result<(), tokio::io::Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:124,1
    - Dst: RedisServer::poll_write
      Src: /src/redis-rs/redis/src/aio/smol.rs:124,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:126,1
    - Dst: RedisServer::poll_write
      Src: /src/redis-rs/redis/src/aio/smol.rs:126,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:128,1
    - Dst: RedisServer::poll_write
      Src: /src/redis-rs/redis/src/aio/smol.rs:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - cx
    - buf
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 42
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: Smol::poll_write
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - 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: 42
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: Smol::poll_flush
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - RedisServer::poll_flush
    - Pin::new
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_flush(mut self: Pin<&mut Self>, cx: &mut task::Context) ->
      Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:144,1
    - Dst: RedisServer::poll_shutdown
      Src: /src/redis-rs/redis/src/aio/smol.rs:144,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:146,1
    - Dst: RedisServer::poll_shutdown
      Src: /src/redis-rs/redis/src/aio/smol.rs:146,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:148,1
    - Dst: RedisServer::poll_shutdown
      Src: /src/redis-rs/redis/src/aio/smol.rs:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 42
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: Smol::poll_shutdown
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - RedisServer::poll_shutdown
    - Pin::new
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_shutdown(mut self: Pin<&mut Self>, cx: &mut task::Context)
      -> Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:160,1
    - Dst: RedisServer::poll_read
      Src: /src/redis-rs/redis/src/aio/smol.rs:160,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:162,1
    - Dst: RedisServer::poll_read
      Src: /src/redis-rs/redis/src/aio/smol.rs:162,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:164,1
    - Dst: RedisServer::poll_read
      Src: /src/redis-rs/redis/src/aio/smol.rs:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - cx
    - buf
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    - '&mut ReadBuf<''_>'
    constantsTouched: []
    func_position:
      end: 166
      start: 154
    functionDepth: 42
    functionLinenumber: 154
    functionLinenumberEnd: 166
    functionName: Smol::poll_read
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - RedisServer::poll_read
    - Pin::new
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_read(mut self: Pin<&mut Self>,cx: &mut task::Context,buf:
      &mut ReadBuf<''_>,) -> Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/smol.rs:174,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/aio/smol.rs:174,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/smol.rs:174,1
    - Dst: Self::Tcp
      Src: /src/redis-rs/redis/src/aio/smol.rs:176,1
    - Dst: SmolWrapped::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - socket_addr
    - tcp_settings
    argTypes:
    - SocketAddr
    - '&crate::io::tcp::TcpSettings'
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 45
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: Smol::connect_tcp
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - map
    - Self::Tcp
    - connect_tcp
    - Ok
    - SmolWrapped::new
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn connect_tcp(socket_addr: SocketAddr,tcp_settings: &crate::io::tcp::TcpSettings,)
      -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/aio/smol.rs:213,1
    - Dst: connection::create_rustls_config
      Src: /src/redis-rs/redis/src/aio/smol.rs:215,1
    - Dst: '&Option<TlsConnParams>::clone'
      Src: /src/redis-rs/redis/src/aio/smol.rs:215,1
    - Dst: TlsConnector::from
      Src: /src/redis-rs/redis/src/aio/smol.rs:216,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:216,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/smol.rs:218,1
    - Dst: Self::connect
      Src: /src/redis-rs/redis/src/aio/smol.rs:218,1
    - Dst: rustls::pki_types::ServerName::try_from
      Src: /src/redis-rs/redis/src/aio/smol.rs:220,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/aio/smol.rs:220,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/smol.rs:218,1
    - Dst: Self::TcpTls
      Src: /src/redis-rs/redis/src/aio/smol.rs:224,1
    - Dst: SmolWrapped::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:224,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - hostname
    - socket_addr
    - insecure
    - tls_params
    - tcp_settings
    argTypes:
    - '&str'
    - SocketAddr
    - bool
    - '&Option<TlsConnParams>'
    - '&crate::io::tcp::TcpSettings'
    constantsTouched: []
    func_position:
      end: 225
      start: 206
    functionDepth: 45
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: Smol::connect_tcp_tls
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - connection::create_rustls_config
    - TlsConnector::from
    - to_owned
    - connect_tcp
    - '&Option<TlsConnParams>::clone'
    - Ok
    - Self::TcpTls
    - rustls::pki_types::ServerName::try_from
    - Self::connect
    - SmolWrapped::new
    - Box::new
    - map
    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:
    - map
    - UnixStream::connect
    - Ok
    - Self::Unix
    - SmolWrapped::new
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn connect_unix(path: &Path) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TaskHandle::Smol
      Src: /src/redis-rs/redis/src/aio/smol.rs:235,1
    - Dst: smol::spawn
      Src: /src/redis-rs/redis/src/aio/smol.rs:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - impl Future<Output = ()> + Send + 'static
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: Smol::spawn
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 1
    functionsReached:
    - smol::spawn
    - TaskHandle::Smol
    linkageType: ''
    returnType: TaskHandle
    signature: 'fn spawn(f: impl Future<Output = ()> + Send + ''static) -> TaskHandle'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/aio/smol.rs:240,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/aio/smol.rs:242,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/aio/smol.rs:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 246
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 246
    functionName: Smol::boxed
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - Box::pin
    linkageType: ''
    returnType: Pin
    signature: fn boxed(self) -> Pin<Box<dyn AsyncStream + Send + Sync>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/caching/config.rs:30,1
    - Dst: RedisServer::unwrap
      Src: /src/redis-rs/redis/src/caching/config.rs:30,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/caching/config.rs:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 42
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: CacheConfig::new
    functionSourceFile: /src/redis-rs/redis/src/caching/config.rs
    functionUses: 11
    functionsReached:
    - 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: 43
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: CacheConfig::default
    functionSourceFile: /src/redis-rs/redis/src/caching/config.rs
    functionUses: 8
    functionsReached:
    - CacheConfig::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::types::from_redis_value
      Src: /src/redis-rs/redis/src/caching/cmd.rs:20,1
    - Dst: crate::types::from_redis_value
      Src: /src/redis-rs/redis/src/caching/cmd.rs:23,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/caching/cmd.rs:25,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/cmd.rs:30,1
    - Dst: resolve
      Src: /src/redis-rs/redis/src/caching/cmd.rs:32,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/cmd.rs:33,1
    - Dst: get_next_reply
      Src: /src/redis-rs/redis/src/caching/cmd.rs:36,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/cmd.rs:37,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/caching/cmd.rs:42,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/caching/cmd.rs:44,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - cache_manager
    - result
    argTypes:
    - '&CacheManager'
    - Value
    constantsTouched: []
    func_position:
      end: 46
      start: 13
    functionDepth: 33
    functionLinenumber: 13
    functionLinenumberEnd: 46
    functionName: CacheablePipeline::resolve
    functionSourceFile: /src/redis-rs/redis/src/caching/cmd.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - Ok
    - get_next_reply
    - crate::types::from_redis_value
    - resolve
    - push
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn resolve(self,cache_manager: &CacheManager,result: Value,)
      -> RedisResult<Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_next_reply
      Src: /src/redis-rs/redis/src/caching/cmd.rs:81,1
    - Dst: impl Iterator<Item = Value>::next
      Src: /src/redis-rs/redis/src/caching/cmd.rs:85,1
    - Dst: impl Iterator<Item = Value>::next
      Src: /src/redis-rs/redis/src/caching/cmd.rs:85,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/cmd.rs:87,1
    - Dst: bool::clone
      Src: /src/redis-rs/redis/src/caching/cmd.rs:90,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/caching/cmd.rs:96,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/caching/cmd.rs:98,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/caching/cmd.rs:98,1
    - Dst: impl Iterator<Item = Value>::next
      Src: /src/redis-rs/redis/src/caching/cmd.rs:111,1
    - Dst: std::iter::zip
      Src: /src/redis-rs/redis/src/caching/cmd.rs:113,1
    - Dst: std::iter::zip
      Src: /src/redis-rs/redis/src/caching/cmd.rs:113,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/cmd.rs:116,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/caching/cmd.rs:119,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/caching/cmd.rs:127,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/caching/cmd.rs:127,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/caching/cmd.rs:132,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/caching/cmd.rs:132,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 63
    argCount: 2
    argNames:
    - cache_manager
    - replies
    argTypes:
    - '&CacheManager'
    - impl Iterator<Item = Value>
    constantsTouched: []
    func_position:
      end: 135
      start: 74
    functionDepth: 43
    functionLinenumber: 74
    functionLinenumberEnd: 135
    functionName: CacheableCommand::resolve
    functionSourceFile: /src/redis-rs/redis/src/caching/cmd.rs
    functionUses: 0
    functionsReached:
    - std::iter::zip
    - RedisError::from
    - impl Iterator<Item = Value>::next
    - Ok
    - Value::Array
    - Self::insert
    - get_next_reply
    - bool::clone
    - clone
    - Err
    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: RedisResult::add_command
      Src: /src/redis-rs/redis/src/caching/cmd.rs:141,1
    - Dst: RedisResult::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: RedisResult::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: RedisResult::add_command
      Src: /src/redis-rs/redis/src/caching/cmd.rs:164,1
    - Dst: RedisResult::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:
    - Cmd::pttl
    - Cmd::new
    - arg
    - Cmd::arg
    - clone
    - RedisResult::add_command
    - '&mut Cmd::arg'
    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
    - Ok
    - RedisError::from
    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: 44
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: CacheStatistics::from
    functionSourceFile: /src/redis-rs/redis/src/caching/statistics.rs
    functionUses: 0
    functionsReached:
    - load
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: Arc<Statistics>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:27,1
    - Dst: ShardedLRU::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:27,1
    - Dst: RedisServer::increase_epoch
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cache_config
    argTypes:
    - CacheConfig
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 42
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: CacheManager::new
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 2
    functionsReached:
    - RedisServer::increase_epoch
    - ShardedLRU::new
    - Arc::new
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn new(cache_config: CacheConfig) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs: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: 44
    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:
    - FromRedisValue::from_redis_value_ref
    - add
    - Duration::from_millis
    - Instant::now
    - insert
    - 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:
    - FromRedisValue::from_redis_value_ref
    - first
    - invalidate
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn handle_push_value(&self, kind: &PushKind, data: &[Value])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CacheManager::get_cached_cmd_inner
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs: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'
    - is_some_and
    - CacheManager::get_cached_cmd_inner
    - Cmd::get_cache_config
    linkageType: ''
    returnType: PrepareCacheResult
    signature: 'pub(crate) fn get_cached_cmd<''a>(&self, cmd: &''a Cmd) -> PrepareCacheResult<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::get_cache_config
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:107,1
    - Dst: '&Option::as_ref'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:107,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:107,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:107,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:113,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: CacheManager::calculate_expiration_time
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - and_then
    - unwrap_or
    - Cmd::get_cache_config
    - '&Option::as_ref'
    - Instant::now
    - add
    linkageType: ''
    returnType: Instant
    signature: 'fn calculate_expiration_time(&self, cmd: &Cmd) -> Instant'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:123,1
    - Dst: extend_from_slice
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:124,1
    - Dst: extend_from_slice
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:125,1
    - Dst: extend_from_slice
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - buffer
    - single_command_name
    - redis_key
    - json_path_key
    argTypes:
    - '&mut Vec<u8>'
    - '&[u8]'
    - '&[u8]'
    - Option<&[u8]>
    constantsTouched: []
    func_position:
      end: 129
      start: 116
    functionDepth: 44
    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: 45
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: CacheManager::extract_simple_arguments
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - Cmd::args_iter
    - filter_map
    - collect
    - Some
    - impl Clone + ExactSizeIterator::skip
    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: 46
    functionLinenumber: 141
    functionLinenumberEnd: 178
    functionName: CacheManager::process_multi_key_arguments
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - flatten
    - '&mut Vec<&''a [u8]>::push'
    - inspect
    - Vec::pop
    - Vec::new
    - RedisFuture::push
    - CacheManager::extract_simple_arguments
    - enumerate
    - CacheManager::prepare_key_buffer
    - bool::then
    - Vec::iter
    - push
    - CacheManager::get
    - RedisServer::clone
    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: 47
    functionLinenumber: 180
    functionLinenumberEnd: 213
    functionName: CacheManager::handle_multi_key_command
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - '&''a str::starts_with'
    - CacheManager::process_multi_key_arguments
    - Vec::new
    - Value::Array
    - PrepareCacheResult::Cached
    - RedisFuture::is_empty
    - PrepareCacheResult::NotCached
    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: 45
    functionLinenumber: 215
    functionLinenumberEnd: 239
    functionName: CacheManager::handle_single_key_command
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - PrepareCacheResult::Cached
    - as_slice
    - PrepareCacheResult::NotCached
    - CacheableCommand::Single
    - CacheManager::get
    - Cmd::arg_idx
    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:
    - CacheManager::handle_single_key_command
    - CacheManager::calculate_expiration_time
    - CacheManager::handle_multi_key_command
    - is_multi_key
    - cmd::cmd_len
    - crate::commands::is_cachable_cmd
    - Cmd::arg_idx
    linkageType: ''
    returnType: PrepareCacheResult
    signature: 'fn get_cached_cmd_inner<''a>(&self, cmd: &''a Cmd) -> PrepareCacheResult<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pipeline::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:282,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:284,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:284,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:285,1
    - Dst: RedisFuture::push
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:286,1
    - Dst: Vec::add_command
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:287,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:287,1
    - Dst: CacheManager::get_cached_cmd
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:290,1
    - Dst: pack_command
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:294,1
    - Dst: Vec::add_command
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:298,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:298,1
    - Dst: RedisFuture::push
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:303,1
    - Dst: Vec::atomic
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:307,1
    - Dst: len
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:308,1
    - Dst: len
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:310,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 1
    argNames:
    - requested_pipeline
    argTypes:
    - '&''a Pipeline'
    constantsTouched: []
    func_position:
      end: 317
      start: 276
    functionDepth: 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::add_command
    - Cmd::clone
    - RedisFuture::push
    - Pipeline::new
    - pack_command
    - len
    - enumerate
    - Vec::atomic
    - iter
    - CacheManager::get_cached_cmd
    linkageType: ''
    returnType: (CacheablePipeline
    signature: 'pub(crate) fn get_cached_pipeline<''a>(&self,requested_pipeline: &''a
      Pipeline,) -> (CacheablePipeline<''a>, Pipeline, (usize, usize))'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:325,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - command_name
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 329
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 329
    functionName: is_multi_key
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn is_multi_key(command_name: &[u8]) -> Option<(&''static str, &''static
      [u8])>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:337,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:338,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:339,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:340,1
    - Dst: CacheManager::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:342,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:342,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:343,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:343,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:343,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:344,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:344,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:344,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:345,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:345,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:345,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:347,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:347,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:347,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:348,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:348,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:348,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:349,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:349,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:349,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:355,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 336
    functionDepth: 48
    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'
    - Duration::from_millis
    - Value::Int
    - std::thread::sleep
    - Self::insert
    - CacheManager::new
    - Duration::from_secs
    - Instant::now
    - CacheConfig::new
    - add
    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: 48
    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
    - do_miss_gets
    - do_hit_gets
    - '&str::as_slice'
    - Self::clone_and_increase_epoch
    - do_inserts
    - Value::Int
    - CacheManager::new
    - Duration::from_secs
    - Instant::now
    - CacheConfig::new
    - add
    - CacheManager::clone_and_increase_epoch
    linkageType: ''
    returnType: void
    signature: fn test_epoch_on_shared_cache_managers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NonZeroUsize::get
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:39,1
    - Dst: NonZeroUsize::get
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:42,1
    - Dst: NonZeroUsize::get
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:45,1
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:48,1
    - Dst: LruCache::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:50,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:50,1
    - Dst: RedisServer::unwrap
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:50,1
    - Dst: 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: 44
    functionLinenumber: 37
    functionLinenumberEnd: 59
    functionName: ShardedLRU::new
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 1
    functionsReached:
    - Arc::new
    - std::sync::Mutex::new
    - NonZeroUsize::get
    - Cmd::push
    - Statistics::default
    - LruCache::new
    - Vec::with_capacity
    - NonZeroUsize::new
    - RedisServer::unwrap
    - AtomicUsize::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: 47
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: ShardedLRU::get_shard
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::write
    - len
    - Self::unwrap_or_else
    - Self::lock
    - TlsFilePaths::finish
    - DefaultHasher::new
    - into_inner
    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: 48
    functionLinenumber: 69
    functionLinenumberEnd: 100
    functionName: ShardedLRU::get
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - increase_miss
    - len
    - increase_hit
    - ShardedLRU::get_shard
    - drop
    - std::sync::MutexGuard::get_mut
    - increase_invalidate
    - Some
    - clone
    - Instant::now
    - std::sync::MutexGuard::pop
    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: 48
    functionLinenumber: 102
    functionLinenumberEnd: 139
    functionName: ShardedLRU::insert
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - ShardedLRU::get_shard
    - std::sync::MutexGuard::push
    - push
    - '&[u8]::to_vec'
    - std::sync::MutexGuard::peek_mut
    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: 48
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: ShardedLRU::invalidate
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - increase_invalidate
    - ShardedLRU::get_shard
    - std::sync::MutexGuard::pop
    - 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: 45
    functionLinenumber: 164
    functionLinenumberEnd: 202
    functionName: tests::test_expire
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - add
    - Duration::from_millis
    - std::thread::sleep
    - Self::insert
    - NonZeroUsize::new
    - RedisServer::unwrap
    - Duration::from_secs
    - Instant::now
    - ShardedLRU::new
    - Value::Boolean
    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: 45
    functionLinenumber: 205
    functionLinenumberEnd: 241
    functionName: tests::test_different_cmd_keys
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - add
    - Duration::from_millis
    - Value::Int
    - std::thread::sleep
    - Self::insert
    - NonZeroUsize::new
    - RedisServer::unwrap
    - Duration::from_secs
    - Instant::now
    - ShardedLRU::new
    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: 45
    functionLinenumber: 244
    functionLinenumberEnd: 270
    functionName: tests::test_invalidate
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - Self::invalidate
    - add
    - to_vec
    - Self::insert
    - NonZeroUsize::new
    - RedisServer::unwrap
    - Duration::from_secs
    - Instant::now
    - ShardedLRU::new
    - Value::Boolean
    linkageType: ''
    returnType: void
    signature: fn test_invalidate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ShardedLRU::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:274,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:274,1
    - Dst: RedisServer::unwrap
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:274,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:278,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:281,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:282,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:282,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:282,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:285,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:286,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:288,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:289,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:289,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 312
      start: 273
    functionDepth: 45
    functionLinenumber: 273
    functionLinenumberEnd: 312
    functionName: tests::test_epoch_change
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - add
    - as_bytes
    - Self::insert
    - NonZeroUsize::new
    - RedisServer::unwrap
    - Duration::from_secs
    - Instant::now
    - ShardedLRU::new
    - Value::Boolean
    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:
    - get_hashtag
    - slot
    linkageType: ''
    returnType: u16
    signature: 'pub(crate) fn get_slot(key: &[u8]) -> u16'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl combine::Parser::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:106,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - Option<Route>
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: SingleNodeRoutingInfo::from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - unwrap_or
    - impl combine::Parser::map
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: Option<Route>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs: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:
    - Cmd::new
    - '&''a impl Routable::arg_idx'
    - 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
    - RedisResult::Err
    - Ok
    - Value::Int
    - Self::into_iter
    - into
    - 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: 47
    functionLinenumber: 176
    functionLinenumberEnd: 221
    functionName: logical_aggregate
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - std::iter::Chain::try_fold
    - RedisResult::Err
    - Vec::new
    - std::iter::Chain::map
    - RedisResult::into_iter
    - collect
    - Ok
    - Value::Array
    - Value::Int
    - Self::into_iter
    - is_empty
    - Err
    - into
    - 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: 47
    functionLinenumber: 223
    functionLinenumberEnd: 263
    functionName: combine_map_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - std::iter::Chain::map
    - Value::BulkString
    - Err
    - Value::Int
    - collect
    - Ok
    - Value::Map
    - next
    - HashMap::new
    - or_insert
    - entry
    - into
    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: 47
    functionLinenumber: 266
    functionLinenumberEnd: 283
    functionName: combine_array_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RedisResult::extend
    - Vec::new
    - Ok
    - Value::Array
    - Err
    - into
    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:
    - RedisResult::step_by
    - RedisError::from
    - '&''a [(Route, Vec<usize>)]::iter'
    - Cmd::iter
    - Cow::Borrowed
    - Ok
    - "iter()\n                        .step_by(2)\n                        .map(|idx|\
      \ idx / 2)\n                        .collect::<Vec<usize>>"
    - check_indices_input
    - "iter()\n                        .step_by(3)\n                        .map(|idx|\
      \ idx / 3)\n                        .collect::<Vec<usize>>"
    - Err
    - Cmd::len
    - Cow::Owned
    - map
    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:
    - RedisResult::resize
    - Self::iter
    - Vec::new
    - RedisError::from
    - calculate_multi_slot_result_indices
    - Self::len
    - RedisResult::len
    - RedisResult::into_iter
    - Ok
    - Value::Array
    - iter
    - fold
    - zip
    - std::iter::Chain::zip
    - Err
    - into
    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: 47
    functionLinenumber: 494
    functionLinenumberEnd: 562
    functionName: multi_shard
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - commands::is_readonly_cmd
    - Vec::new
    - SingleNodeRoutingInfo::SpecificNode
    - Some
    - Option::is_none
    - RedisServer::entry
    - MultipleNodeRoutingInfo::MultiSlot
    - or_insert
    - unwrap
    - get_route
    - RedisServer::pop
    - RedisServer::into_iter
    - RedisServer::is_empty
    - RoutingInfo::MultiNode
    - push
    - incr_add_next_arg
    - RoutingInfo::SingleNode
    - RedisServer::len
    - ResponsePolicy::for_command
    - Option::arg_idx
    - HashMap::new
    - RedisServer::iter_mut
    - std::iter::Chain::collect
    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::Aggregate
    - Some
    - ResponsePolicy::AggregateLogical
    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: 49
    functionLinenumber: 789
    functionLinenumberEnd: 859
    functionName: RoutingInfo::for_routable
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - base_routing
    - and_then
    - parse::<u64>
    - std::str::from_utf8
    - SingleNodeRoutingInfo::SpecificNode
    - Some
    - Option::and_then
    - Route::new
    - ConnectionAddr::arg_idx
    - multi_shard
    - ok
    - ConnectionAddr::command
    - RoutingInfo::for_key
    - map
    - ConnectionAddr::position
    - RoutingInfo::MultiNode
    - Option::map
    - parse::<u16>
    - RoutingInfo::SingleNode
    - ResponsePolicy::for_command
    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:
    - RoutingInfo::SingleNode
    - commands::is_readonly_cmd
    - get_route
    - 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:
    - len
    - make_ascii_uppercase
    - to_ascii_uppercase
    - as_slice
    - Routable::arg_idx
    - Some
    - extend
    - reserve
    - Option::map
    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: 45
    functionLinenumber: 910
    functionLinenumberEnd: 915
    functionName: Cmd::position
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Cmd::args_iter
    - impl Clone + ExactSizeIterator::position
    - ServerType::eq_ignore_ascii_case
    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: 44
    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: 44
    functionLinenumber: 929
    functionLinenumberEnd: 937
    functionName: Value::position
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - position
    - ServerType::eq_ignore_ascii_case
    - iter
    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: 47
    functionLinenumber: 996
    functionLinenumberEnd: 998
    functionName: Route::new_random_primary
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Self::new
    - random_slot
    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:
    - rand::rng
    - random_range
    linkageType: ''
    returnType: u16
    signature: fn random_slot() -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs: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: 44
    functionLinenumber: 1007
    functionLinenumberEnd: 1014
    functionName: get_hashtag
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 1
    functionsReached:
    - position
    - is_empty
    - then_some
    - iter
    linkageType: ''
    returnType: Option
    signature: 'fn get_hashtag(key: &[u8]) -> Option<&[u8]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1028,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1029,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1029,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1029,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1031,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1032,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1032,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1032,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1039,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1040,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1040,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1027
    functionDepth: 42
    functionLinenumber: 1027
    functionLinenumberEnd: 1046
    functionName: tests_routing::test_routing_info_mixed_capatalization
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - arg
    - cmd
    - Cmd::arg
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_routing_info_mixed_capatalization()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1053,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1054,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1055,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1058,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1059,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1060,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1063,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1064,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1065,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1068,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1069,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1069,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1070,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1073,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1074,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1074,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1074,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1075,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1078,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1079,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1079,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1079,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1080,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1083,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1084,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1084,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1085,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1088,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1089,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1089,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1089,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1090,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1093,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1093,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1093,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1102,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1102,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1102,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1145,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:1159,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1159,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1159,1
    - Dst: 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:1178,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1178,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1178,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1178,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1182,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1182,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1183,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1183,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1183,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1187,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1187,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1187,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1187,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1187,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1187,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1193,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1193,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1194,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1194,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1195,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1201,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1201,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1201,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1202,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1202,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1203,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1203,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1204,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1210,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1210,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1210,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1210,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1210,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1210,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1216,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1216,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1217,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1217,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1218,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1224,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1224,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1224,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1224,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1224,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1224,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1224,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1224,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1232,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1232,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1233,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1233,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 212
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1049
    functionDepth: 42
    functionLinenumber: 1049
    functionLinenumberEnd: 1247
    functionName: tests_routing::test_routing_info
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RedisResult::arg
    - slot
    - RoutingInfo::SingleNode
    - RedisResult::unwrap
    - parse_redis_value
    - arg
    - SingleNodeRoutingInfo::SpecificNode
    - push
    - Cmd::get_packed_command
    - Cmd::arg
    - Some
    - cmd
    - Route::new
    - '&mut Cmd::arg'
    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: 1269
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1269
    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:1273,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1274,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1274,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1274,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1274,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1275,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1276,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1277,1
    - Dst: Route
      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: crate::cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1289,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1290,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1290,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1290,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1290,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1291,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1292,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1293,1
    - Dst: Route
      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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1272
    functionDepth: 42
    functionLinenumber: 1272
    functionLinenumberEnd: 1304
    functionName: tests_routing::test_multi_shard_keys_only
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RedisServer::insert
    - std::collections::HashMap::new
    - Route
    - RoutingInfo::for_routable
    - arg
    - crate::cmd
    - Cmd::arg
    - cmd
    - '&mut Cmd::arg'
    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:1308,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1309,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1309,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1309,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1309,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1309,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1309,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1315,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1316,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1317,1
    - Dst: Route
      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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1307
    functionDepth: 42
    functionLinenumber: 1307
    functionLinenumberEnd: 1327
    functionName: tests_routing::test_multi_shard_key_value_pairs
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RedisServer::insert
    - std::collections::HashMap::new
    - Route
    - RoutingInfo::for_routable
    - arg
    - Cmd::arg
    - cmd
    - '&mut Cmd::arg'
    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:1331,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1332,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1332,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1332,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1332,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1332,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1337,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1338,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1339,1
    - Dst: Route
      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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1330
    functionDepth: 42
    functionLinenumber: 1330
    functionLinenumberEnd: 1350
    functionName: tests_routing::test_multi_shard_keys_and_path
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RedisServer::insert
    - std::collections::HashMap::new
    - Route
    - RoutingInfo::for_routable
    - arg
    - Cmd::arg
    - cmd
    - '&mut Cmd::arg'
    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:1354,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1355,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1355,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1355,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1355,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1355,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1355,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1355,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1355,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1355,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1365,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1366,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1367,1
    - Dst: Route
      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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1353
    functionDepth: 51
    functionLinenumber: 1353
    functionLinenumberEnd: 1377
    functionName: tests_routing::test_multi_shard_key_with_two_arg_triples
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RedisServer::insert
    - std::collections::HashMap::new
    - Route
    - RoutingInfo::for_routable
    - arg
    - Cmd::arg
    - cmd
    - '&mut Cmd::arg'
    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:1381,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1382,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1382,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1382,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1382,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1387,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1394,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1394,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1394,1
    - Dst: Cmd::sort_by
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1397,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1397,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1397,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1397,1
    - Dst: cmp
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1397,1
    - Dst: Option::iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1397,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1397,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1397,1
    - Dst: Cmd::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1399,1
    - Dst: std::iter::Chain::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1399,1
    - Dst: command_for_multi_slot_indices
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1400,1
    - Dst: Cmd::iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1400,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1403,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1380
    functionDepth: 51
    functionLinenumber: 1380
    functionLinenumberEnd: 1408
    functionName: tests_routing::test_command_creation_for_multi_shard
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - command_for_multi_slot_indices
    - into_iter
    - Option::iter
    - Cmd::sort_by
    - '&mut Cmd::arg'
    - collect
    - RoutingInfo::for_routable
    - arg
    - unwrap
    - cmd
    - Cmd::into_iter
    - enumerate
    - iter
    - Cmd::arg
    - cmp
    - Option::unwrap
    - std::iter::Chain::map
    - next
    - Cmd::iter
    - 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:1412,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1413,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1413,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1413,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1411
    functionDepth: 51
    functionLinenumber: 1411
    functionLinenumberEnd: 1425
    functionName: tests_routing::test_combine_multi_shard_to_single_node_when_all_keys_are_in_same_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RoutingInfo::for_routable
    - arg
    - Cmd::arg
    - cmd
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn test_combine_multi_shard_to_single_node_when_all_keys_are_in_same_slot()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1430,1
    - 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:1435,1
    - Dst: super::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1436,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1439,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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1428
    functionDepth: 54
    functionLinenumber: 1428
    functionLinenumberEnd: 1457
    functionName: tests_routing::test_combining_results_into_single_array_only_keys
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - super::combine_and_sort_array_results
    - Value::Array
    - Route
    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:1462,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1463,1
    - Dst: super::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1464,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1467,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1460
    functionDepth: 54
    functionLinenumber: 1460
    functionLinenumberEnd: 1481
    functionName: tests_routing::test_combining_results_into_single_array_key_value_paires
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - super::combine_and_sort_array_results
    - Value::Array
    - Route
    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:1486,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1487,1
    - Dst: super::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1488,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1491,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1484
    functionDepth: 54
    functionLinenumber: 1484
    functionLinenumberEnd: 1505
    functionName: tests_routing::test_combining_results_into_single_array_keys_and_path
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - super::combine_and_sort_array_results
    - Value::Array
    - Route
    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:1510,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1511,1
    - Dst: super::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1512,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1515,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1508
    functionDepth: 54
    functionLinenumber: 1508
    functionLinenumberEnd: 1529
    functionName: tests_routing::test_combining_results_into_single_array_key_with_two_arg_triples
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - super::combine_and_sort_array_results
    - Value::Array
    - Route
    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:1534,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1534,1
    - Dst: super::combine_map_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1551,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1551,1
    - Dst: sort_unstable_by
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1557,1
    - Dst: cmp
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1558,1
    - Dst: sort_unstable_by
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1565,1
    - Dst: cmp
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1566,1
    - Dst: super::combine_map_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1572,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1532
    functionDepth: 50
    functionLinenumber: 1532
    functionLinenumberEnd: 1574
    functionName: tests_routing::test_combine_map_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - super::combine_map_results
    - sort_unstable_by
    - RedisResult::unwrap
    - cmp
    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:
    - min
    - Duration::from_millis
    - rand::rng
    - pow
    - random_range
    - 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:
    - None::unwrap_or
    - transpose
    - unwrap_or
    - Ok
    - CacheManager::new
    - Some
    - as_ref
    - unwrap
    - map
    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
    - into_iter
    - std::iter::Chain::map
    - collect
    - into_connection_info
    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
    - is_none
    - as_deref
    - TlsFilePaths::is_some
    - RedisError::from
    - clone_from
    - ClusterParams::from
    - Ok
    - tls_mode
    - '&''static str::as_deref'
    - ProtocolVersion::is_some
    - Some
    - as_ref
    - Err
    - '&''static str::is_some'
    - into
    - map
    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:
    - into
    - Some
    - '&''static str::as_ref'
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn password(mut self, password: impl AsRef<str>) -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs: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:
    - into
    - Some
    - '&''static str::as_ref'
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn username(mut self, username: impl AsRef<str>) -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - retries
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 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:
    - is_none
    - Some
    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: 43
    functionLinenumber: 507
    functionLinenumberEnd: 511
    functionName: ClusterClient::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - build
    - Self::builder
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new<T: IntoConnectionInfo>(initial_nodes: impl IntoIterator<Item
      = T>,) -> RedisResult<ClusterClient>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs: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:
    - cluster::ClusterConnection::new
    - with_config
    - 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:
    - cluster_async::ClusterConnection::new
    - with_config
    - 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:
    - cluster_async::ClusterConnection::new_pending
    - with_config
    - 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: 44
    functionLinenumber: 658
    functionLinenumberEnd: 661
    functionName: tests::give_no_password
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap
    - get_connection_data
    - 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: 44
    functionLinenumber: 664
    functionLinenumberEnd: 667
    functionName: tests::give_password_by_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - get_connection_data_with_password
    - RedisResult::unwrap
    - ClusterClient::new
    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: 44
    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:
    - get_connection_data_with_username_and_password
    - RedisResult::unwrap
    - ClusterClient::new
    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: 44
    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: 44
    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: 44
    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: 44
    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::username
    - ClusterClientBuilder::password
    - get_connection_data_with_username_and_password
    - RedisResult::unwrap
    - ClusterClientBuilder::new
    - ClusterClientBuilder::build
    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: 44
    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:
    - Cmd::new
    - Cmd::arg
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: Cmd
    signature: pub(crate) fn slot_cmd() -> Cmd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:25,1
    - Dst: RedisResult::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:
    - trim_start_matches
    - u16::from_str
    - RedisError::from
    - and_then
    - filter
    - Result::ok
    - RedisResult::rsplit_once
    - is_empty
    - Some
    - zip
    - ok_or_else
    - 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:
    - to_string
    - Default::default
    - split_node_address
    - Ok
    - clone
    - unwrap_or_default
    - get_connection_addr
    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: RedisResult::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:
    - into_iter
    - Ok
    - Some
    - into
    - is_wildcard_address
    - '&str::into'
    - filter_map
    - collect
    - String::from_utf8_lossy
    - is_none
    - Option::len
    - Vec::with_capacity
    - std::iter::Chain::skip
    - RedisResult::push
    - is_empty
    - Slot::new
    - RedisResult::len
    - next
    - try_to_address
    - Option::into_iter
    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: RedisResult::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:
    - RedisResult::iter
    - append
    - collect
    - Value::Array
    - map
    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:
    - RedisResult::unwrap
    - Value::Array
    - parse_slots
    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:
    - RedisResult::unwrap
    - Value::Array
    - parse_slots
    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
    - collect
    - RedisResult::into_iter
    - SlotMapValue::from_slot
    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:
    - SlotMapValue::from_slot
    - insert
    linkageType: ''
    returnType: void
    signature: 'pub fn fill_slots(&mut self, slots: Vec<Slot>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs: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
    - and_then
    - range
    - next
    - Some
    - 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:
    - HashSet::new
    - SlotMap::values
    - into_iter
    - impl Iterator::map
    - RedisResult::extend
    - slot_addr
    - impl Iterator::flat_map
    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:
    - '&''b [(Route, Vec<usize>)]::iter'
    - SlotMap::slot_addr_for_route
    - 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:
    - unwrap_or
    - rand::rng
    - choose
    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:
    - chain
    - std::iter::once
    - iter
    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:
    - addresses_for_all_primaries
    - get_slot_map
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_get_all_primaries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs: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:
    - addresses_for_all_nodes
    - get_slot_map
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_get_all_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs: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<_>>"
    - addresses_for_multi_slot
    - get_slot_map
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_get_multi_node()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs: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<_>>"
    - addresses_for_multi_slot
    - get_slot_map
    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<_>>"
    - addresses_for_multi_slot
    - get_slot_map
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_get_repeating_addresses_when_the_same_node_is_found_in_multi_slot()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs: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<_>>"
    - addresses_for_multi_slot
    - get_slot_map
    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:
    - unwrap_or
    - '&mut ClusterConnection::execute_pipeline'
    - to_ascii_uppercase
    - Err
    - ClusterPipeline::compose_response
    - is_illegal_cmd
    - RedisError::make_empty_command
    - std::str::from_utf8
    - is_empty
    - fail
    - Cmd::arg_idx
    - Option::unwrap_or
    - trim
    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:
    - RedisFuture::and_then
    - RedisResult::and_then
    - impl combine::Parser::extract_error
    - bool::req_packed_command
    - bool::req_packed_commands
    - bool::req_command
    - map
    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:
    - Option::arg_idx
    - Cmd::arg_idx
    linkageType: ''
    returnType: Option
    signature: 'fn arg_idx(&self, idx: usize) -> Option<&[u8]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::position
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs: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:
    - Cmd::position
    - Option::position
    linkageType: ''
    returnType: Option
    signature: 'fn position(&self, candidate: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs: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:
    - redis::ConnectionInfo::into_connection_info
    - connection::connect
    linkageType: ''
    returnType: RedisResult
    signature: 'fn connect<T>(info: T, timeout: Option<Duration>) -> RedisResult<Self>whereT:
      IntoConnectionInfo,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::default
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs: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:
    - Some
    - std::sync::Arc::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_push_sender(mut self, sender: impl crate::aio::AsyncPushSender)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs: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:
    - Some
    - std::sync::Arc::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_dns_resolver(mut self, resolver: impl crate::io::AsyncDNSResolver)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_inner
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs: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
    - Ok
    - Self::new_inner
    - RedisError::from
    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:
    - borrow_mut
    - borrow
    - Option<Duration>::unwrap
    - is_zero
    - RedisError::from
    - Option<Duration>::is_some
    - Ok
    - RedisResult::values
    - Err
    - RedisResult::set_write_timeout
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn set_write_timeout(&self, dur: Option<Duration>) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option<Duration>::is_some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs: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:
    - borrow_mut
    - borrow
    - Option<Duration>::unwrap
    - is_zero
    - RedisError::from
    - Option<Duration>::is_some
    - Ok
    - RedisResult::values
    - RedisResult::set_read_timeout
    - Err
    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:
    - to_string
    - len
    - RedisResult::is_empty
    - Vec::new
    - RedisResult::check_connection
    - Ok
    - into
    - borrow_mut
    - ClusterConnection::refresh_slots
    - RedisServer::into_iter
    - ClusterConnection::connect
    - iter
    - RedisServer::is_empty
    - Err
    - RedisServer::push
    - RedisResult::insert
    - HashMap::with_capacity
    - RedisError::from
    - '&str::to_string'
    - 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: RedisResult::sort_unstable
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:467,1
    - Dst: RedisResult::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: RedisResult::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:
    - borrow_mut
    - Self::flatten
    - RedisResult::check_connection
    - RedisResult::remove
    - RedisResult::dedup
    - RedisResult::into_iter
    - collect
    - ClusterConnection::connect
    - Ok
    - RedisResult::values
    - std::iter::Chain::filter_map
    - RedisResult::sort_unstable
    - Some
    - ConnectionAddr::clone
    - ClusterConnection::create_new_slots
    - values().flatten().collect::<Vec<_>>
    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:
    - borrow_mut
    - RedisResult::iter_mut
    - RedisResult::req_command
    - ConnectionAddr::rsplit_once
    - RedisError::from
    - Ok
    - cluster_handling::slot_cmd
    - Some
    - unwrap
    - Err
    - super::topology::parse_slots
    - SlotMap::from_slots
    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:
    - borrow
    - cluster_handling::get_connection_info
    - Cmd::exec
    - Ok
    - C::connect
    - cmd::cmd
    - RedisResult::set_read_timeout
    - Some
    - RedisResult::set_write_timeout
    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:
    - borrow
    - get_random_connection_or_error
    - RedisResult::slot_addr_for_route
    - ClusterConnection::get_connection_by_addr
    - ConnectionAddr::clone
    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:
    - RedisResult::entry
    - into_mut
    - ClusterConnection::connect
    - Ok
    - ConnectionAddr::clone
    - insert
    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:
    - borrow
    - Option::ok_or
    - rand::rng
    - Ok
    - RoutingInfo::for_routable
    - RedisResult::slot_addr_for_route
    - random_range
    - fail
    - addr_for_slot
    - SlotAddr::clone
    - Route::new
    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:
    - RedisResult::iter
    - or_insert_with
    - Vec::new
    - NodeCmd::new
    - enumerate
    - RedisServer::entry
    - RedisServer::drain
    - Ok
    - HashMap::new
    - ConnectionAddr::clone
    - push
    - Cmd::write_packed_command
    - ClusterConnection::get_addr_for_cmd
    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:
    - to_string
    - RedisResult::map
    - RoutingInfo::SingleNode
    - std::iter::Chain::map
    - RedisResult::into_iter
    - RedisResult::unwrap
    - ClusterConnection::request
    - Value::Array
    - collect
    - Some
    - cluster_handling::split_node_address
    - Input::clone
    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:
    - ClusterConnection::execute_on_all
    - RedisResult::addresses_for_all_nodes
    linkageType: ''
    returnType: Vec
    signature: 'fn execute_on_all_nodes<''a>(&''a self,input: Input,slots: &''a mut
      SlotMap,) -> Vec<RedisResult<(&''a 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:
    - ClusterConnection::execute_on_all
    - RedisResult::addresses_for_all_primaries
    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: RedisResult::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:
    - ConnectionAddr::ok_or
    - RedisResult::map
    - RedisResult::addresses_for_multi_slot
    - '&''b [(Route, Vec<usize>)]::get'
    - RedisError::from
    - crate::cluster_routing::command_for_multi_slot_indices
    - RedisResult::unwrap
    - collect
    - bool::req_command
    - impl Iterator::enumerate
    - ClusterConnection::get_connection_by_addr
    - Cmd::iter
    - map
    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:
    - None::unwrap_or_else
    - Ok
    - crate::cluster_routing::combine_map_results
    - Some
    - into
    - borrow_mut
    - None::ok_or
    - Value::BulkString
    - RedisResult::into_iter
    - ClusterConnection::execute_on_all_primaries
    - crate::cluster_routing::combine_array_results
    - "into_iter()\n                    .map(|res| res.map(|(_, val)| val))\n    \
      \                .collect::<RedisResult<Vec<_>>>"
    - map
    - crate::cluster_routing::logical_aggregate
    - Value::Map
    - "into_iter()\n                    .map(|result| result.map(|(_, value)| value))\n\
      \                    .collect::<RedisResult<Vec<_>>>"
    - Err
    - crate::cluster_routing::combine_and_sort_array_results
    - RedisResult::len
    - std::iter::Chain::map
    - crate::cluster_routing::aggregate
    - drop
    - to_vec
    - ClusterConnection::execute_multi_slot
    - ConnectionAddr::as_bytes
    - ClusterConnection::execute_on_all_nodes
    - "into_iter()\n                    .map(|result| {\n                        result.map(|(addr,\
      \ val)| (Value::BulkString(addr.as_bytes().to_vec()), val))\n              \
      \      })\n                    .collect::<RedisResult<Vec<_>>>"
    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: RedisResult::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: RedisResult::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:
    - ClusterConnection::execute_on_multiple_nodes
    - to_string
    - RedisResult::check_connection
    - ClusterConnection::get_connection
    - Ok
    - RedisResult::into
    - get_random_connection_or_error
    - retry_method
    - RedisResult::req_packed_command
    - into
    - borrow_mut
    - ClusterConnection::refresh_slots
    - RedisFuture::and_then
    - RedisResult::and_then
    - thread::sleep
    - redirect_node
    - Redirect::Moved
    - ClusterConnection::get_connection_by_addr
    - Input::send
    - insert
    - RedisResult::map
    - borrow
    - impl combine::Parser::extract_error
    - ClusterConnection::connect
    - Err
    - Option::map
    - remove
    - take
    - Route::new_random_primary
    - Redirect::Ask
    - kind
    - fail
    - wait_time_for_retry
    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:
    - ClusterConnection::refresh_slots
    - ClusterConnection::recv_all_commands
    - Input::Cmd
    - RedisResult::and_then
    - Ok
    - ClusterConnection::request
    - RoutingInfo::for_routable
    - ClusterConnection::send_all_commands
    - is_empty
    - into
    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:
    - borrow_mut
    - send_packed_command
    - Ok
    - ClusterConnection::map_cmds_to_nodes
    - ClusterConnection::get_connection_by_addr
    linkageType: ''
    returnType: RedisResult
    signature: 'fn send_all_commands(&self, cmds: &[Cmd]) -> RedisResult<Vec<NodeCmd>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs: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:
    - borrow_mut
    - None::or
    - recv_response
    - Vec::new
    - is_cluster_error
    - Ok
    - ClusterConnection::get_connection_by_addr
    - Some
    - Err
    - RedisServer::push
    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:
    - io::Error::new
    - map_err
    - unwrap_or_else
    - Arc::new
    - RedisError::from
    - timeout
    - send
    - Err
    - RouteBy::into
    - oneshot::channel
    - map
    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: 56
    functionLinenumber: 1012
    functionLinenumberEnd: 1018
    functionName: ClusterConnection::req_command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::map
    - Input::Cmd
    - ClusterConnection::request
    - RedisError::make_empty_command
    - Cmd::is_empty
    - RoutingInfo::for_routable
    - Err
    - into
    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:1416,1
    - Dst: Option::unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1416,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1417,1
    - Dst: ClusterConnection::route_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1418,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1418,1
    - Dst: RedisResult::boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 1419
      start: 1415
    functionDepth: 56
    functionLinenumber: 1415
    functionLinenumberEnd: 1419
    functionName: ClusterConnection::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Cmd::clone
    - RoutingInfo::SingleNode
    - RedisResult::boxed
    - RoutingInfo::for_routable
    - ClusterConnection::route_command
    - Option::unwrap_or
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn req_packed_command<''a>(&''a mut self, cmd: &''a Cmd) -> RedisFuture<''a,
      Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: routing::route_for_pipeline
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1428,1
    - Dst: ClusterConnection::route_pipeline
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1429,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1429,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1429,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pipeline
    - offset
    - count
    argTypes:
    - '&''a crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 1433
      start: 1421
    functionDepth: 55
    functionLinenumber: 1421
    functionLinenumberEnd: 1433
    functionName: ClusterConnection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - ClusterConnection::route_pipeline
    - RedisResult::clone
    - boxed
    - routing::route_for_pipeline
    - into
    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: 1437
      start: 1435
    functionDepth: 0
    functionLinenumber: 1435
    functionLinenumberEnd: 1437
    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: 56
    functionLinenumber: 1074
    functionLinenumberEnd: 1082
    functionName: ClusterConnection::is_open
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::is_open
    - borrow
    - 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:1516,1
    - Dst: choose
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1516,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1518,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1516,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1519,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - connections
    argTypes:
    - '&ConnectionMap<C>'
    constantsTouched: []
    func_position:
      end: 1520
      start: 1512
    functionDepth: 47
    functionLinenumber: 1512
    functionLinenumberEnd: 1520
    functionName: get_random_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::iter
    - rand::rng
    - RedisResult::clone
    - ConnectionAddr::clone
    - choose
    - map
    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: 48
    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:
    - get_random_connection
    - RedisError::from
    - Ok
    - RedisServer::into
    - String::new
    - Err
    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: 54
    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:
    - ClusterParams::default
    - cluster_handling::get_connection_info
    linkageType: ''
    returnType: void
    signature: fn parse_cluster_node_host_port()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InternalRoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - InternalSingleNodeRouting<C>
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    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: InternalSingleNodeRouting::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:54,1
    - Dst: InternalSingleNodeRouting::ByAddress
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:57,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:57,1
    - Dst: InternalSingleNodeRouting::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:60,1
    - Dst: Route::new_random_primary
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - SingleNodeRoutingInfo
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 54
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: InternalSingleNodeRouting::from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - Route::new_random_primary
    - InternalSingleNodeRouting::ByAddress
    - into
    - InternalSingleNodeRouting::SpecificNode
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: SingleNodeRoutingInfo) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:68,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:71,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:76,1
    - Dst: Route::new_random_primary
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 56
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: r::o::u::t::e::_::f::o::r::_::p::i::p::e::l::i::n::e::route_for_command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - RoutingInfo::for_routable
    - Route::new_random_primary
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn route_for_command(cmd: &Cmd) -> Option<Route>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::cmd_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:84,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:84,1
    - Dst: try_fold
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:84,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:87,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:88,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:90,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:90,1
    - Dst: Err
      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:92,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:91,1
    - Dst: slot_addr
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:96,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:97,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:97,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:99,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 1
    argNames:
    - pipeline
    argTypes:
    - '&crate::Pipeline'
    constantsTouched: []
    func_position:
      end: 104
      start: 66
    functionDepth: 49
    functionLinenumber: 66
    functionLinenumberEnd: 104
    functionName: route_for_pipeline
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 1
    functionsReached:
    - try_fold
    - impl Iterator::map
    - slot
    - Ok
    - RedisResult::cmd_iter
    - Some
    - Err
    - slot_addr
    - into
    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:116,1
    - Dst: RedisResult::flushall
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:118,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:118,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:118,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 53
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: pipeline_routing_tests::test_first_route_is_found
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - RedisResult::flushall
    - get
    - add_command
    - crate::Pipeline::new
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_first_route_is_found()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Pipeline::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:131,1
    - Dst: RedisResult::flushall
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:133,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:133,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 53
    functionLinenumber: 130
    functionLinenumberEnd: 138
    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:
    - add_command
    - crate::Pipeline::new
    - cmd
    - RedisResult::flushall
    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:142,1
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:144,1
    - Dst: RedisResult::flushall
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:144,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:144,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:147,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:144,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:144,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:144,1
    - Dst: set
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 141
    functionDepth: 53
    functionLinenumber: 141
    functionLinenumberEnd: 155
    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:
    - RedisResult::flushall
    - add_command
    - crate::Pipeline::new
    - set
    - arg
    - RedisResult::get
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_prefer_primary_route_over_replica()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Pipeline::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:159,1
    - Dst: RedisResult::flushall
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:161,1
    - Dst: set
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:161,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 158
    functionDepth: 53
    functionLinenumber: 158
    functionLinenumberEnd: 170
    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
    - crate::Pipeline::new
    - RedisResult::flushall
    - 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:174,1
    - Dst: RedisResult::set
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:176,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:176,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:176,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:176,1
    - Dst: set
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:176,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:176,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:176,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:176,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:176,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 173
    functionDepth: 53
    functionLinenumber: 173
    functionLinenumberEnd: 187
    functionName: pipeline_routing_tests::unkeyed_commands_dont_affect_route
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - crate::Pipeline::new
    - set
    - RedisResult::set
    - Cmd::arg
    - cmd
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: fn unkeyed_commands_dont_affect_route()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_inner
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs: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: 55
    functionLinenumber: 185
    functionLinenumberEnd: 223
    functionName: ClusterConnection::new_inner
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - "(\n        PendingRequest::poll_recv"
    - forward
    - stream::poll_fn
    - tokio::runtime::Runtime::spawn
    - Arc::new
    - RedisResult::wait_for_initial_connection
    - send
    - Runtime::locate
    - clone
    - mpsc::channel::<Message<_>>
    - oneshot::channel::<RedisResult<()>>
    - HandleContainer::new
    - ClusterConnInner::new
    - unwrap_or_default
    - map
    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: 52
    functionLinenumber: 267
    functionLinenumberEnd: 302
    functionName: ClusterConnection::route_pipeline
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - map
    - map_err
    - unwrap_or_else
    - Arc::new
    - timeout
    - send
    - Err
    - into
    - oneshot::channel
    - closed_connection_error
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn route_pipeline(&mut self,pipeline: crate::Pipeline,offset:
      usize,count: usize,route: SingleNodeRoutingInfo,) -> RedisResult<Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs: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: 51
    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
    - Ok
    - Cmd::arg
    - check_resp3
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn subscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs: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: 51
    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
    - Ok
    - Cmd::arg
    - check_resp3
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn unsubscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs: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: 51
    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
    - Ok
    - Cmd::arg
    - check_resp3
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn psubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs: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: 51
    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
    - Ok
    - Cmd::arg
    - check_resp3
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn punsubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs: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: 51
    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
    - Ok
    - Cmd::arg
    - check_resp3
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn ssubscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs: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: 51
    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
    - Ok
    - Cmd::arg
    - check_resp3
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn sunsubscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs: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: 48
    functionLinenumber: 428
    functionLinenumberEnd: 430
    functionName: ClusterConnection::get_cache_statistics
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - statistics
    - as_ref
    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:
    - Arc::new
    - and_then
    - HashSet::into_iter
    - std::iter::Chain::filter_map
    - extend
    - addresses_for_all_nodes
    - into
    - lock
    - Cmd::as_ref
    - filter_map
    - impl Iterator::enumerate
    - unwrap
    - oneshot::channel
    - map
    - Result::Err
    - addresses_for_all_primaries
    - crate::cluster_routing::command_for_multi_slot_indices
    - get
    - request::ResultExpectation::External
    - addresses_for_multi_slot
    - is_empty
    - unzip
    - read
    - Self::aggregate_results
    - Cmd::clone
    - cloned
    - drop
    - to_request
    - ConnectionAddr::clone
    - Cmd::iter
    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: 48
    functionLinenumber: 546
    functionLinenumberEnd: 679
    functionName: Core::aggregate_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - len
    - into_iter
    - and_then
    - None::unwrap_or_else
    - Ok
    - crate::cluster_routing::combine_map_results
    - convert_result
    - Some
    - into
    - "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<_>, _>>"
    - Value::BulkString
    - Vec<(ArcStr, oneshot::Receiver<RedisResult<Response>>)>::is_empty
    - Box::pin
    - crate::cluster_routing::combine_array_results
    - Ok::<_, RedisError>
    - or_else
    - map
    - crate::cluster_routing::logical_aggregate
    - map_err
    - Value::ServerError
    - future::select_ok
    - Value::Map
    - Err
    - get_receiver
    - ok_or
    - future::try_join_all
    - crate::cluster_routing::combine_and_sort_array_results
    - RedisError::from
    - try_into
    - std::iter::Chain::map
    - crate::cluster_routing::aggregate
    - Vec<(ArcStr, oneshot::Receiver<RedisResult<Response>>)>::into_iter
    - to_vec
    - RedisResult::pop
    - future::join_all
    - ConnectionAddr::as_bytes
    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:
    - update_with_cmd
    - Core::get_connection
    - inspect
    - lock
    - Cmd::as_ref
    - Self::unwrap
    - ConnectionAddr::into
    - Err
    - RedisResult::req_packed_command
    - Core::execute_on_multiple_nodes
    - map
    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: RedisResult::is_transaction
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:731,1
    - Dst: RedisResult::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: 51
    functionLinenumber: 714
    functionLinenumberEnd: 751
    functionName: Core::try_pipeline_request
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - update_with_cmd
    - inspect
    - Core::get_connection
    - RedisResult::req_packed_commands
    - Self::unwrap
    - RedisResult::cmd_iter
    - impl Iterator::enumerate
    - RedisResult::is_transaction
    - Err
    - lock
    - map
    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_pipeline_request
    - Core::try_cmd_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: RedisResult::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:
    - map
    - ok
    - get_random_connection
    - get
    - cloned
    - Ok
    - drop
    - RedisResult::to_string
    - Core::connect_check_and_add
    - slot_addr_for_route
    - Some
    - Core::get_redirected_connection
    - Err
    - into
    - read
    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:
    - crate::cmd::cmd
    - get
    - and_then
    - cloned
    - drop
    - impl combine::Parser::extract_error
    - Ok
    - Core::connect_check_and_add
    - RedisResult::req_packed_command
    - read
    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: 54
    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:
    - write
    - Ok
    - RedisResult::clone
    - ConnectionAddr::clone
    - Err
    - insert
    - connect_and_check::<C>
    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::<Vec<_>>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:893,1
    - Dst: RedisResult::sort_unstable
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:894,1
    - Dst: RedisResult::dedup
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:895,1
    - Dst: Core::refresh_connections_locked
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:896,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:898,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 899
      start: 872
    functionDepth: 54
    functionLinenumber: 872
    functionLinenumberEnd: 899
    functionName: Core::refresh_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Self::flatten
    - write
    - ConnectionAddr::rsplit_once
    - slot_cmd
    - and_then
    - RedisResult::dedup
    - is_ok
    - Ok
    - impl combine::Parser::extract_error
    - cloned
    - Core::refresh_connections_locked
    - RedisResult::values
    - '{

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

      RedisFuture,RedisResult,ToRedisArgs,Value,

      aio::

      topology::parse_slots'
    - RedisResult::sort_unstable
    - unwrap
    - RedisResult::req_packed_command
    - build_slot_map
    - values().flatten().cloned().collect::<Vec<_>>
    linkageType: ''
    returnType: RedisResult
    signature: async fn refresh_slots(self) -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:906,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:908,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:908,1
    - Dst: RedisResult::remove
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:909,1
    - Dst: stream::iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:913,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:913,1
    - Dst: get_or_create_conn
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:915,1
    - Dst: buffer_unordered
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:913,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:913,1
    - Dst: HashMap::with_capacity
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:920,1
    - Dst: RedisResult::insert
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:923,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 2
    argNames:
    - connections
    - nodes
    argTypes:
    - '&mut ConnectionMap<C>'
    - Vec<ArcStr>
    constantsTouched: []
    func_position:
      end: 929
      start: 901
    functionDepth: 52
    functionLinenumber: 901
    functionLinenumberEnd: 929
    functionName: Core::refresh_connections_locked
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - HashMap::with_capacity
    - buffer_unordered
    - RedisResult::len
    - std::iter::Chain::map
    - RedisResult::remove
    - RedisResult::into_iter
    - RedisResult::insert
    - max
    - get_or_create_conn
    - fold
    - stream::iter
    - map
    linkageType: ''
    returnType: void
    signature: 'async fn refresh_connections_locked(&self,connections: &mut ConnectionMap<C>,nodes:
      Vec<ArcStr>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:932,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:936,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:936,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:936,1
    - Dst: into_cmd_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:942,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:942,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:943,1
    - Dst: Option::unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:943,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:944,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:943,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:950,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:955,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:955,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 956
      start: 931
    functionDepth: 48
    functionLinenumber: 931
    functionLinenumberEnd: 956
    functionName: Core::resubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - RoutingInfo::SingleNode
    - into_cmd_iter
    - Self::unwrap
    - RoutingInfo::for_routable
    - get_subscription_pipeline
    - as_ref
    - unwrap
    - extend
    - Option::unwrap_or
    - into
    - lock
    - map
    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:971,1
    - Dst: Runtime::locate_and_sleep
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - duration
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 972
      start: 970
    functionDepth: 52
    functionLinenumber: 970
    functionLinenumberEnd: 972
    functionName: boxed_sleep
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Runtime::locate_and_sleep
    - Box::pin
    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: 990
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 990
    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: 1018
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1018
    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:1022,1
    - Dst: fill_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1023,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - slot_map
    - slots_data
    argTypes:
    - '&mut SlotMap'
    - Vec<Slot>
    constantsTouched: []
    func_position:
      end: 1026
      start: 1021
    functionDepth: 50
    functionLinenumber: 1021
    functionLinenumberEnd: 1026
    functionName: build_slot_map
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - clear
    - Ok
    - fill_slots
    linkageType: ''
    returnType: RedisResult
    signature: 'fn build_slot_map(slot_map: &mut SlotMap, slots_data: Vec<Slot>) ->
      RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1033,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1034,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1034,1
    - Dst: SubscriptionTracker::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1034,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1038,1
    - Dst: RwLock::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1039,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1040,1
    - Dst: SlotMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1041,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1044,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1044,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1045,1
    - Dst: Core
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1048,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1050,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1051,1
    - Dst: ConnectionState::Recover
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1055,1
    - Dst: RecoverFuture::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1055,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1055,1
    - Dst: RedisResult::reconnect_to_initial_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1056,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 2
    argNames:
    - initial_nodes
    - cluster_params
    argTypes:
    - '&[ConnectionInfo]'
    - ClusterParams
    constantsTouched: []
    func_position:
      end: 1059
      start: 1032
    functionDepth: 53
    functionLinenumber: 1032
    functionLinenumberEnd: 1059
    functionName: ClusterConnInner::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - is_some
    - Default::default
    - RedisResult::reconnect_to_initial_nodes
    - Vec::new
    - Arc::new
    - RwLock::new
    - Self::clone
    - SlotMap::new
    - Mutex::new
    - to_vec
    - Box::pin
    - RecoverFuture::Reconnect
    - Some
    - SubscriptionTracker::default
    - Core
    - ConnectionState::Recover
    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:1065,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1065,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1065,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1065,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1067,1
    - Dst: connect_and_check
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1068,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1070,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1073,1
    - Dst: buffer_unordered
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1065,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1077,1
    - Dst: fold
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1065,1
    - Dst: ConnectionMap::<C>::with_capacity
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1079,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1079,1
    - Dst: RedisResult::insert
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1083,1
    - Dst: ConnectionAddr::into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1083,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1088,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1095,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1097,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1097,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1100,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1103,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1103,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1109,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 62
    argCount: 2
    argNames:
    - initial_nodes
    - params
    argTypes:
    - '&[ConnectionInfo]'
    - '&ClusterParams'
    constantsTouched: []
    func_position:
      end: 1110
      start: 1061
    functionDepth: 47
    functionLinenumber: 1061
    functionLinenumberEnd: 1110
    functionName: ClusterConnInner::create_initial_connections
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - to_string
    - len
    - RedisResult::is_empty
    - ConnectionAddr::into
    - buffer_unordered
    - RedisError::from
    - RedisResult::insert
    - cloned
    - Ok
    - iter
    - fold
    - connect_and_check
    - Some
    - ConnectionMap::<C>::with_capacity
    - Err
    - stream::iter
    - map
    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:1114,1
    - Dst: Self::create_initial_connections
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1117,1
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1119,1
    - Dst: SlotMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1121,1
    - Dst: RedisResult::refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1123,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1112
    functionDepth: 55
    functionLinenumber: 1112
    functionLinenumberEnd: 1126
    functionName: ClusterConnInner::reconnect_to_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Self::create_initial_connections
    - write
    - SlotMap::new
    - Ok
    - clone
    - RedisResult::refresh_slots
    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:1129,1
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1131,1
    - Dst: RedisResult::refresh_connections_locked
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - addrs
    argTypes:
    - Vec<ArcStr>
    constantsTouched: []
    func_position:
      end: 1137
      start: 1128
    functionDepth: 55
    functionLinenumber: 1128
    functionLinenumberEnd: 1137
    functionName: ClusterConnInner::refresh_connections
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::refresh_connections_locked
    - clone
    - write
    linkageType: ''
    returnType: impl Future
    signature: 'fn refresh_connections(&mut self, addrs: Vec<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:1141,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1139
    functionDepth: 0
    functionLinenumber: 1139
    functionLinenumberEnd: 1149
    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:1153,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1153,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1161,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1165,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1165,1
    - Dst: refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1165,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1166,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1175,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1178,1
    - Dst: resubscribe
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1179,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 1
    argNames:
    - cx
    argTypes:
    - '&mut task::Context<''_>'
    constantsTouched: []
    func_position:
      end: 1182
      start: 1151
    functionDepth: 55
    functionLinenumber: 1151
    functionLinenumberEnd: 1182
    functionName: ClusterConnInner::poll_recover
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - is_ok
    - Ok
    - Box::pin
    - resubscribe
    - Poll::Ready
    - clone
    - refresh_slots
    - Err
    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:1187,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1187,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1188,1
    - Dst: mem::take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1189,1
    - Dst: Self::drain
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1190,1
    - Dst: is_closed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1194,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1198,1
    - Dst: try_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1198,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1198,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1198,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1199,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1199,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1200,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1201,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1207,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1211,1
    - Dst: RedisServer::poll_next
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1211,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1217,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1217,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1217,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1220,1
    - Dst: try_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1220,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1220,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1221,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1221,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1222,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1223,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1225,1
    - Dst: boxed_sleep
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1234,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1236,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1236,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1237,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1238,1
    - Dst: change_state
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1244,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1247,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1249,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 122
    argCount: 1
    argNames:
    - cx
    argTypes:
    - '&mut task::Context<''_>'
    constantsTouched: []
    func_position:
      end: 1253
      start: 1184
    functionDepth: 55
    functionLinenumber: 1184
    functionLinenumberEnd: 1253
    functionName: ClusterConnInner::poll_complete
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - change_state
    - Pin::new
    - try_request
    - drop
    - Box::pin
    - boxed
    - RedisServer::poll_next
    - is_empty
    - Self::drain
    - is_closed
    - unwrap
    - clone
    - push
    - Some
    - boxed_sleep
    - Poll::Ready
    - lock
    - mem::take
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_complete(&mut self, cx: &mut task::Context<''_>) -> Poll<PollFlushAction>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1256,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1257,1
    - Dst: RedisServer::iter_pin_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1257,1
    - Dst: find
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1257,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1259,1
    - Dst: as_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1261,1
    - Dst: respond
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1261,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1263,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1263,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1263,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1266,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1266,1
    - Dst: pop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1266,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1268,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1268,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1268,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1255
    functionDepth: 53
    functionLinenumber: 1255
    functionLinenumberEnd: 1272
    functionName: ClusterConnInner::send_refresh_error
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - is_some
    - pop
    - find
    - RedisServer::iter_pin_mut
    - Pin::new
    - take
    - respond
    - as_mut
    - send
    - unwrap
    - Err
    - 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:1284,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1285,1
    - Dst: connect_and_check
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1286,1
    - Dst: connect_and_check
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - addr
    - conn_option
    - params
    argTypes:
    - '&str'
    - Option<C>
    - '&ClusterParams'
    constantsTouched: []
    func_position:
      end: 1291
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1291
    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:1316,1
    - Dst: Self::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - next_state
    argTypes:
    - PollFlushAction
    constantsTouched: []
    func_position:
      end: 1320
      start: 1302
    functionDepth: 0
    functionLinenumber: 1302
    functionLinenumberEnd: 1320
    functionName: PollFlushAction::change_state
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Self::Reconnect
    - impl Iterator::extend
    linkageType: ''
    returnType: PollFlushAction
    signature: 'fn change_state(self, next_state: PollFlushAction) -> PollFlushAction'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1330,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 1331
      start: 1329
    functionDepth: 0
    functionLinenumber: 1329
    functionLinenumberEnd: 1331
    functionName: ClusterConnInner::poll_ready
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Poll::Ready
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_ready(self: Pin<&mut Self>, _cx: &mut task::Context) -> Poll<Result<(),
      Self::Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1337,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1337,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1337,1
    - Dst: request::ResultExpectation::External
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1343,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - msg
    argTypes:
    - Pin<&mut Self>
    - Message<C>
    constantsTouched: []
    func_position:
      end: 1347
      start: 1333
    functionDepth: 47
    functionLinenumber: 1333
    functionLinenumberEnd: 1347
    functionName: ClusterConnInner::start_send
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - request::ResultExpectation::External
    - push
    - unwrap
    - lock
    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:1355,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1361,1
    - Dst: Pin<&mut Self>::waker
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1366,1
    - Dst: wake_by_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1366,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1371,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1371,1
    - Dst: ConnectionState::Recover
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1373,1
    - Dst: RecoverFuture::RecoverSlots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1373,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1373,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1374,1
    - Dst: refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1374,1
    - Dst: ConnectionState::Recover
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1378,1
    - Dst: RecoverFuture::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1378,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1378,1
    - Dst: ClusterConnInner::refresh_connections
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1379,1
    - Dst: impl Future::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1379,1
    - Dst: ConnectionState::Recover
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1383,1
    - Dst: RecoverFuture::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1383,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1383,1
    - Dst: ClusterConnInner::reconnect_to_initial_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 1389
      start: 1349
    functionDepth: 54
    functionLinenumber: 1349
    functionLinenumberEnd: 1389
    functionName: ClusterConnInner::poll_flush
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - ConnectionState::Recover
    - impl Future::map
    - ClusterConnInner::reconnect_to_initial_nodes
    - wake_by_ref
    - RecoverFuture::RecoverSlots
    - refresh_slots
    - Ok
    - Box::pin
    - ClusterConnInner::send_refresh_error
    - RecoverFuture::Reconnect
    - Poll::Ready
    - Some
    - clone
    - ClusterConnInner::refresh_connections
    - Pin<&mut Self>::waker
    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:1396,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1398,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1403,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1404,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1404,1
    - Dst: ClusterConnInner::poll_flush
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 1408
      start: 1391
    functionDepth: 56
    functionLinenumber: 1391
    functionLinenumberEnd: 1408
    functionName: ClusterConnInner::poll_close
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ClusterConnInner::poll_flush
    - is_empty
    - Poll::Ready
    - Err
    - ClusterConnInner::poll_complete
    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:1454,1
    - Dst: crate::Client::open
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1455,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1456,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - info
    - config
    argTypes:
    - T
    - AsyncConnectionConfig
    constantsTouched: []
    func_position:
      end: 1461
      start: 1449
    functionDepth: 52
    functionLinenumber: 1449
    functionLinenumberEnd: 1461
    functionName: MultiplexedConnection::connect_with_config
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - crate::Client::open
    - redis::ConnectionInfo::into_connection_info
    - boxed
    - get_multiplexed_async_connection_with_config
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn connect_with_config<''a, T>(info: T, config: AsyncConnectionConfig)
      -> RedisFuture<''a, Self>whereT: IntoConnectionInfo + Send + ''a,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection_info
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1468,1
    - Dst: AsyncConnectionConfig::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1470,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1470,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1470,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1471,1
    - Dst: Self::set_push_sender_internal
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1474,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1474,1
    - Dst: Self::set_dns_resolver_internal
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1477,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1477,1
    - Dst: Self::set_cache_manager
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1481,1
    - Dst: Self::clone_and_increase_epoch
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1481,1
    - Dst: C::connect_with_config
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1483,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1487,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1493,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1495,1
    - Dst: RedisResult::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1498,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1499,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 60
    argCount: 2
    argNames:
    - node
    - params
    argTypes:
    - '&str'
    - '&ClusterParams'
    constantsTouched: []
    func_position:
      end: 1500
      start: 1464
    functionDepth: 49
    functionLinenumber: 1464
    functionLinenumberEnd: 1500
    functionName: connect_and_check
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 2
    functionsReached:
    - Self::set_connection_timeout
    - Self::clone
    - get_connection_info
    - Self::set_response_timeout
    - Self::set_push_sender_internal
    - Self::set_dns_resolver_internal
    - Self::clone_and_increase_epoch
    - C::connect_with_config
    - Self::set_cache_manager
    - Err
    - Ok
    - Some
    - AsyncConnectionConfig::default
    - RedisResult::req_packed_command
    - cmd
    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:1506,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1507,1
    - Dst: query_async::<()>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1508,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut C'
    constantsTouched: []
    func_position:
      end: 1510
      start: 1502
    functionDepth: 50
    functionLinenumber: 1502
    functionLinenumberEnd: 1510
    functionName: check_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 8
    functionsReached:
    - Cmd::new
    - query_async::<()>
    - Ok
    - 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:60,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:60,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:58,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:72,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - redirect
    argTypes:
    - Option<Redirect>
    constantsTouched: []
    func_position:
      end: 78
      start: 53
    functionDepth: 53
    functionLinenumber: 53
    functionLinenumberEnd: 78
    functionName: CmdArg::set_redirect
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - into
    - std::mem::take
    - Box::new
    linkageType: ''
    returnType: void
    signature: 'fn set_redirect(&mut self, redirect: Option<Redirect>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:86,1
    - Dst: Self::as_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:86,1
    - Dst: InternalSingleNodeRouting::ByAddress
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:92,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:92,1
    - Dst: fix_route
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:100,1
    - Dst: fix_route
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 107
    functionName: CmdArg::reset_routing
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - Self::as_mut
    - InternalSingleNodeRouting::ByAddress
    - fix_route
    - std::mem::take
    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:135,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - result
    argTypes:
    - RedisResult<Response>
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: ResultExpectation::send
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Self::send
    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:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 145
    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:172,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:173,1
    - Dst: impl combine::Parser::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:173,1
    - Dst: Self::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:173,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:173,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:175,1
    - Dst: position
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:175,1
    - Dst: impl combine::Parser::is_error_that_requires_action
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:177,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:175,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:178,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:178,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:178,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:184,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:184,1
    - Dst: saturating_add
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:204,1
    - Dst: '&RetryParams::wait_time_for_retry'
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:206,1
    - Dst: retry_method
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:208,1
    - Dst: PollFlushAction::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:222,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:227,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:227,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:274,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 77
    argCount: 3
    argNames:
    - result
    - request
    - retry_params
    argTypes:
    - OperationResult
    - PendingRequest<C>
    - '&RetryParams'
    constantsTouched: []
    func_position:
      end: 283
      start: 163
    functionDepth: 50
    functionLinenumber: 163
    functionLinenumberEnd: 283
    functionName: choose_response
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - Self::extract_error
    - impl combine::Parser::clone
    - Self::iter
    - '&RetryParams::wait_time_for_retry'
    - RedisResult::unwrap_err
    - Err
    - Ok
    - position
    - impl combine::Parser::is_error_that_requires_action
    - send
    - Some
    - clone
    - retry_method
    - PollFlushAction::Reconnect
    - extract_error
    - unwrap_err
    - saturating_add
    - Option::map
    linkageType: ''
    returnType: (Option
    signature: '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:289,1
    - Dst: project
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:289,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:290,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:290,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:290,1
    - Dst: is_closed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:290,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:291,1
    - Dst: as_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:294,1
    - Dst: project
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:294,1
    - Dst: Some
      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:301,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:301,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:298,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:311,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:311,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:312,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 313
      start: 288
    functionDepth: 51
    functionLinenumber: 288
    functionLinenumberEnd: 313
    functionName: Request::poll
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - take
    - choose_response
    - as_mut
    - is_closed
    - Poll::Ready
    - as_ref
    - Request::as_mut
    - is_none
    - Some
    - project
    - into
    linkageType: ''
    returnType: Poll
    signature: 'fn poll(mut self: Pin<&mut Self>, cx: &mut task::Context) -> Poll<Self::Output>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Request::project
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:319,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:319,1
    - Dst: expect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:319,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - msg
    argTypes:
    - Pin<&mut Self>
    - RedisResult<Response>
    constantsTouched: []
    func_position:
      end: 325
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 325
    functionName: Request::respond
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - Request::project
    - send
    - expect
    - take
    linkageType: ''
    returnType: void
    signature: 'pub(super) fn respond(self: Pin<&mut Self>, msg: RedisResult<Response>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:349,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:349,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:353,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - request
    argTypes:
    - '&PendingRequest<C>'
    constantsTouched: []
    func_position:
      end: 357
      start: 343
    functionDepth: 55
    functionLinenumber: 343
    functionLinenumberEnd: 357
    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:365,1
    - Dst: ResultExpectation::External
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:369,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:371,1
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:371,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - retry
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 377
      start: 359
    functionDepth: 52
    functionLinenumber: 359
    functionLinenumberEnd: 377
    functionName: tests::request_and_receiver
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - crate::cmd
    - ResultExpectation::External
    - into
    - oneshot::channel
    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:382,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:382,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - val
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 50
    functionLinenumber: 381
    functionLinenumberEnd: 383
    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:386,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:386,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:386,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:386,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - error
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 390
      start: 385
    functionDepth: 50
    functionLinenumber: 385
    functionLinenumberEnd: 390
    functionName: tests::to_err
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - as_bytes
    - crate::parse_redis_value
    - RedisResult::unwrap
    - extract_error
    - 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:394,1
    - Dst: single_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:396,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:399,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:401,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:403,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:404,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:415,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:418,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:420,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 427
      start: 393
    functionDepth: 53
    functionLinenumber: 393
    functionLinenumberEnd: 427
    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:
    - err
    - choose_response
    - single_result
    - request_and_receiver
    - RetryParams::default
    - into
    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:432,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:433,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:436,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:438,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:440,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:441,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:455,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:458,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:460,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 467
      start: 430
    functionDepth: 51
    functionLinenumber: 430
    functionLinenumberEnd: 467
    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:
    - err
    - choose_response
    - single_result
    - request_and_receiver
    - RetryParams::default
    - into
    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:471,1
    - Dst: single_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:473,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:474,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 480
      start: 470
    functionDepth: 53
    functionLinenumber: 470
    functionLinenumberEnd: 480
    functionName: tests::never_retry_on_fanout_operation_target
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - choose_response
    - request_and_receiver
    - single_result
    - 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:485,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:487,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:488,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:489,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:490,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:501,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:504,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:506,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 513
      start: 483
    functionDepth: 51
    functionLinenumber: 483
    functionLinenumberEnd: 513
    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:
    - err
    - choose_response
    - single_result
    - request_and_receiver
    - RetryParams::default
    - into
    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:517,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:519,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:520,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:520,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:521,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:522,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:533,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:536,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:538,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:538,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:540,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:551,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:552,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:552,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:553,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 562
      start: 516
    functionDepth: 53
    functionLinenumber: 516
    functionLinenumberEnd: 562
    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:
    - RedisError::from
    - err
    - choose_response
    - Err
    - request_and_receiver
    - RetryParams::default
    - into
    linkageType: ''
    returnType: void
    signature: fn complete_disconnect_should_reconnect_from_initial_nodes_regardless_of_target()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::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: 48
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: Unit::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - as_bytes
    - RedisResult::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: 2
    argNames:
    - longitude
    - latitude
    argTypes:
    - T
    - T
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: Coord::lon_lat
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Coord
    signature: 'pub fn lon_lat(longitude: T, latitude: T) -> Coord<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/src/commands/geo.rs:70,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/commands/geo.rs:71,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/commands/geo.rs:72,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/commands/geo.rs:72,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/commands/geo.rs:72,1
    - Dst: errors::invalid_type_error
      Src: /src/redis-rs/redis/src/commands/geo.rs:74,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/geo.rs:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 50
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: Coord::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - Ok
    - errors::invalid_type_error
    - Self::into_iter
    - Self::next
    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: 56
    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: 49
    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: 54
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: RadiusOptions::store
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - ToRedisArgs::to_redis_args
    - Some
    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: 54
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: RadiusOptions::store_dist
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - ToRedisArgs::to_redis_args
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn store_dist<K: ToRedisArgs>(mut self, key: K) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:202,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:206,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:210,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/geo.rs:211,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:215,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:216,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:221,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:223,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:228,1
    - Dst: RedisResult::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: 48
    functionLinenumber: 197
    functionLinenumberEnd: 233
    functionName: RadiusOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - RedisResult::write_arg_fmt
    - RedisResult::write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/geo.rs:243,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/commands/geo.rs:251,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/geo.rs:251,1
    - Dst: Result::len
      Src: /src/redis-rs/redis/src/commands/geo.rs:251,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/commands/geo.rs:251,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/commands/geo.rs:252,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/geo.rs:252,1
    - Dst: Result::len
      Src: /src/redis-rs/redis/src/commands/geo.rs:252,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/commands/geo.rs:252,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 235
    functionDepth: 48
    functionLinenumber: 235
    functionLinenumberEnd: 254
    functionName: RadiusOptions::num_of_args
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - is_some
    - Result::len
    - unwrap_or
    - as_ref
    - map
    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:
    - errors::invalid_type_error
    - RadiusSearchResult::parse_multi_values
    - Ok
    - 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: 48
    functionLinenumber: 288
    functionLinenumberEnd: 316
    functionName: RadiusSearchResult::parse_multi_values
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 1
    functionsReached:
    - FromRedisValue::from_redis_value
    - Value::Array
    - errors::invalid_type_error
    - Ok
    - next
    - Self::map
    - Some
    - Err
    - Vec<Value>::into_iter
    - into
    - Coord::from_redis_value
    - Option::map
    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: 48
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: tests::test_coord_to_args
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - Coord::lon_lat
    - assert_args
    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: 54
    functionLinenumber: 342
    functionLinenumberEnd: 371
    functionName: tests::test_radius_options
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - RadiusOptions::default
    - assert_args
    linkageType: ''
    returnType: void
    signature: fn test_radius_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/commands/macros.rs:11,1
    - Dst: query_async
      Src: /src/redis-rs/redis/src/commands/macros.rs:11,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 3
    functionDepth: 50
    functionLinenumber: 3
    functionLinenumberEnd: 42
    functionName: implement_command_async
    functionSourceFile: /src/redis-rs/redis/src/commands/macros.rs
    functionUses: 0
    functionsReached:
    - query_async
    - Box::pin
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: query
      Src: /src/redis-rs/redis/src/commands/macros.rs:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 44
    functionDepth: 50
    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: 51
    functionLinenumber: 85
    functionLinenumberEnd: 172
    functionName: implement_iterators
    functionSourceFile: /src/redis-rs/redis/src/commands/macros.rs
    functionUses: 0
    functionsReached:
    - arg
    - cursor_arg
    - cmd
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 391
    functionName: implement_commands
    functionSourceFile: /src/redis-rs/redis/src/commands/macros.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:34,1
    - Dst: RedisResult::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: 48
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: StreamMaxlen::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - as_bytes
    - RedisResult::write_arg
    - write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:57,1
    - Dst: RedisResult::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: 48
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: StreamTrimmingMode::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - RedisResult::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::MaxLen
    - StreamTrimStrategy::MinId
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn limit(self, limit: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:102,1
    - Dst: RedisResult::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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:108,1
    - Dst: RedisResult::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: RedisResult::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: 48
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: StreamTrimStrategy::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::write_redis_args
    - TlsFilePaths::write_redis_args
    - RedisResult::write_arg
    - 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: 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: 49
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: StreamTrimOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - Self::write_redis_args
    - write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    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: RedisResult::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: 48
    functionLinenumber: 205
    functionLinenumberEnd: 218
    functionName: StreamAddOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::write_redis_args
    - write_redis_args
    - RedisResult::write_arg
    - as_ref
    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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:252,1
    - Dst: RedisResult::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: RedisResult::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: 48
    functionLinenumber: 247
    functionLinenumberEnd: 258
    functionName: StreamAutoClaimOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - as_bytes
    - RedisResult::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/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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:327,1
    - Dst: RedisResult::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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:331,1
    - Dst: RedisResult::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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:335,1
    - Dst: RedisResult::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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:339,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:342,1
    - Dst: RedisResult::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: 48
    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
    - as_bytes
    - RedisResult::write_arg
    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: 54
    functionLinenumber: 403
    functionLinenumberEnd: 413
    functionName: StreamReadOptions::group
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - ToRedisArgs::to_redis_args
    - Some
    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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:428,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:430,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:433,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:438,1
    - Dst: RedisResult::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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:443,1
    - Dst: RedisResult::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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:450,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:454,1
    - Dst: RedisResult::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: 48
    functionLinenumber: 423
    functionLinenumberEnd: 458
    functionName: StreamReadOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - is_some
    - Some
    - as_bytes
    - RedisResult::write_arg
    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: 54
    functionLinenumber: 709
    functionLinenumberEnd: 721
    functionName: StreamId::from_array_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Self::first_mut
    - std::mem::take
    - from_redis_value
    - StreamId::default
    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: 50
    functionLinenumber: 725
    functionLinenumberEnd: 730
    functionName: StreamId::get
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - get
    - from_redis_value_ref
    - Result::ok
    linkageType: ''
    returnType: Option
    signature: 'pub fn get<T: FromRedisValue>(&self, key: &str) -> Option<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains_key
      Src: /src/redis-rs/redis/src/commands/streams.rs:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 735
      start: 733
    functionDepth: 52
    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: 52
    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: 53
    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: 52
    functionLinenumber: 751
    functionLinenumberEnd: 828
    functionName: StreamAutoClaimReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - pop
    - len
    - Default::default
    - find
    - Vec::new
    - into_iter
    - RedisResult::into_iter
    - collect
    - Ok
    - iter
    - from_redis_value
    - invalid_type_error
    - Self::into_iter
    - is_empty
    - std::iter::Chain::filter_map
    - unwrap
    - std::iter::Chain::flat_map
    - map
    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: 55
    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>
    - Self::from_standard_rows
    - Result::clone
    - from_redis_value::<SRClaimRows>
    - Ok
    - Self::from_claim_rows
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs: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: 48
    functionLinenumber: 853
    functionLinenumberEnd: 874
    functionName: StreamReadReply::from_standard_rows
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - collect
    - Self::into_iter
    - std::iter::Chain::flat_map
    - map
    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: 48
    functionLinenumber: 876
    functionLinenumberEnd: 899
    functionName: StreamReadReply::from_claim_rows
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - std::iter::Chain::map
    - collect
    - Self::into_iter
    - std::iter::Chain::flat_map
    - map
    linkageType: ''
    returnType: Self
    signature: 'fn from_claim_rows(rows: SRClaimRows) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs: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: 50
    functionLinenumber: 903
    functionLinenumberEnd: 917
    functionName: StreamRangeReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - collect
    - Ok
    - from_redis_value
    - Self::into_iter
    - std::iter::Chain::flat_map
    - map
    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: 50
    functionLinenumber: 921
    functionLinenumberEnd: 935
    functionName: StreamClaimReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - collect
    - Ok
    - from_redis_value
    - Self::into_iter
    - std::iter::Chain::flat_map
    - map
    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: 50
    functionLinenumber: 945
    functionLinenumberEnd: 981
    functionName: StreamPendingReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - flatten
    - StreamPendingReply::Data
    - Default::default
    - into_iter
    - ClusterConnection::parse
    - StreamPendingData::default
    - Ok
    - collect
    - from_redis_value
    - ParsingError::from
    - ok_or_else
    - unwrap_or_default
    - map
    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: 54
    functionLinenumber: 985
    functionLinenumberEnd: 1024
    functionName: StreamPendingCountReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamPendingCountReply::default
    - to_vec
    - Ok
    - push
    - String::from_utf8
    - fail
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs: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: 50
    functionLinenumber: 1028
    functionLinenumberEnd: 1050
    functionName: StreamInfoStreamReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - remove
    - StreamInfoStreamReply::default
    - Ok
    - from_redis_value
    - StreamId::from_array_value
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs: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: 50
    functionLinenumber: 1054
    functionLinenumberEnd: 1072
    functionName: StreamInfoConsumersReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamInfoConsumer::default
    - remove
    - Ok
    - StreamInfoConsumersReply::default
    - from_redis_value
    - push
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs: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: 50
    functionLinenumber: 1076
    functionLinenumberEnd: 1110
    functionName: StreamInfoGroupsReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamInfoGroup::default
    - remove
    - Ok
    - StreamInfoGroupsReply::default
    - from_redis_value
    - Some
    - push
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:1132,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:1133,1
    - Dst: RedisResult::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: 48
    functionLinenumber: 1127
    functionLinenumberEnd: 1136
    functionName: StreamDeletionPolicy::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - RedisResult::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
    - Ok
    - into
    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
    - Ok
    - into
    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: RedisResult::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: 53
    functionLinenumber: 1203
    functionLinenumberEnd: 1218
    functionName: tests::assert_command_eq
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - RedisResult::iter_mut
    - Cmd::pop
    - Vec::new
    - Cmd::append
    - for_each
    - Cmd::push
    - 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: 53
    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: 49
    functionLinenumber: 1232
    functionLinenumberEnd: 1244
    functionName: tests::parses_none_claimed_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value
    - Result::unwrap
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn parses_none_claimed_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/streams.rs: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: 49
    functionLinenumber: 1247
    functionLinenumberEnd: 1285
    functionName: tests::parses_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value
    - Result::unwrap
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn parses_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/streams.rs: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: 49
    functionLinenumber: 1288
    functionLinenumberEnd: 1322
    functionName: tests::parses_v6_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value
    - collect
    - Value::Array
    - iter
    - as_str
    - Result::unwrap
    - map
    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: 49
    functionLinenumber: 1325
    functionLinenumberEnd: 1344
    functionName: tests::parses_justid_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value
    - collect
    - Value::Array
    - iter
    - as_str
    - Result::unwrap
    - map
    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: 49
    functionLinenumber: 1347
    functionLinenumberEnd: 1365
    functionName: tests::parses_v6_justid_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value
    - collect
    - Value::Array
    - iter
    - as_str
    - Result::unwrap
    - map
    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: 54
    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: 54
    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: 54
    functionLinenumber: 1386
    functionLinenumberEnd: 1390
    functionName: tests::maxlen_trim_limit
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamTrimOptions::maxlen
    - assert_command_eq
    - Self::limit
    linkageType: ''
    returnType: void
    signature: fn maxlen_trim_limit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/src/commands/streams.rs: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: 54
    functionLinenumber: 1392
    functionLinenumberEnd: 1396
    functionName: tests::minid_trim_limit
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamTrimOptions::minid
    - assert_command_eq
    - Self::limit
    linkageType: ''
    returnType: void
    signature: fn minid_trim_limit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs: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: 54
    functionLinenumber: 1403
    functionLinenumberEnd: 1407
    functionName: tests::the_default
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - assert_command_eq
    - StreamAddOptions::default
    linkageType: ''
    returnType: void
    signature: fn the_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs: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: 54
    functionLinenumber: 1410
    functionLinenumberEnd: 1415
    functionName: tests::with_maxlen_trim
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - assert_command_eq
    - StreamAddOptions::default
    - Self::trim
    - StreamTrimStrategy::maxlen
    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: 54
    functionLinenumber: 1418
    functionLinenumberEnd: 1422
    functionName: tests::with_nomkstream
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::nomkstream
    - assert_command_eq
    - StreamAddOptions::default
    linkageType: ''
    returnType: void
    signature: fn with_nomkstream()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs: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: 54
    functionLinenumber: 1425
    functionLinenumberEnd: 1431
    functionName: tests::with_nomkstream_and_maxlen_trim
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - assert_command_eq
    - StreamTrimStrategy::maxlen
    - Self::nomkstream
    - StreamAddOptions::default
    - Self::trim
    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: 240
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 240
    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: 248
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 248
    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: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    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:3041,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/src/commands/mod.rs:3042,1
    - Dst: RedisResult::get_message
      Src: /src/redis-rs/redis/src/commands/mod.rs:3045,1
    - Dst: func
      Src: /src/redis-rs/redis/src/commands/mod.rs:3046,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/mod.rs:3048,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - channels
    - func
    argTypes:
    - C
    - F
    constantsTouched: []
    func_position:
      end: 3051
      start: 3036
    functionDepth: 56
    functionLinenumber: 3036
    functionLinenumberEnd: 3051
    functionName: Connection::subscribe
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 2
    functionsReached:
    - RedisResult::subscribe
    - func
    - Connection::as_pubsub
    - Ok
    - RedisResult::get_message
    linkageType: ''
    returnType: RedisResult
    signature: 'fn subscribe<C, F, U>(&mut self, channels: C, mut func: F) -> RedisResult<U>whereF:
      FnMut(Msg) -> ControlFlow<U>,C: ToRedisArgs,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Connection::as_pubsub
      Src: /src/redis-rs/redis/src/commands/mod.rs:3058,1
    - Dst: RedisResult::psubscribe
      Src: /src/redis-rs/redis/src/commands/mod.rs:3059,1
    - Dst: RedisResult::get_message
      Src: /src/redis-rs/redis/src/commands/mod.rs:3062,1
    - Dst: func
      Src: /src/redis-rs/redis/src/commands/mod.rs:3063,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/mod.rs:3065,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - patterns
    - func
    argTypes:
    - P
    - F
    constantsTouched: []
    func_position:
      end: 3068
      start: 3053
    functionDepth: 56
    functionLinenumber: 3053
    functionLinenumberEnd: 3068
    functionName: Connection::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 1
    functionsReached:
    - func
    - RedisResult::psubscribe
    - Connection::as_pubsub
    - Ok
    - RedisResult::get_message
    linkageType: ''
    returnType: RedisResult
    signature: 'fn psubscribe<P, F, U>(&mut self, patterns: P, mut func: F) -> RedisResult<U>whereF:
      FnMut(Msg) -> ControlFlow<U>,P: ToRedisArgs,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 3100
      start: 3097
    functionDepth: 0
    functionLinenumber: 3097
    functionLinenumberEnd: 3100
    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:3104,1
    - Dst: into
      Src: /src/redis-rs/redis/src/commands/mod.rs:3104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 3106
      start: 3103
    functionDepth: 0
    functionLinenumber: 3103
    functionLinenumberEnd: 3106
    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:3110,1
    - Dst: TlsFilePaths::into
      Src: /src/redis-rs/redis/src/commands/mod.rs:3110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 3112
      start: 3109
    functionDepth: 0
    functionLinenumber: 3109
    functionLinenumberEnd: 3112
    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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3121,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3122,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3126,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3127,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3131,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3134
      start: 3116
    functionDepth: 48
    functionLinenumber: 3116
    functionLinenumberEnd: 3134
    functionName: ScanOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::write_arg_fmt
    - RedisResult::write_arg
    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:3138,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3141,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3148
      start: 3136
    functionDepth: 0
    functionLinenumber: 3136
    functionLinenumberEnd: 3148
    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:3182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 3184
      start: 3181
    functionDepth: 0
    functionLinenumber: 3181
    functionLinenumberEnd: 3184
    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:3188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - isize
    constantsTouched: []
    func_position:
      end: 3190
      start: 3187
    functionDepth: 0
    functionLinenumber: 3187
    functionLinenumberEnd: 3190
    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:3194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 3196
      start: 3193
    functionDepth: 0
    functionLinenumber: 3193
    functionLinenumberEnd: 3196
    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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3205,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3206,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3210,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3211,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3215,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3218
      start: 3200
    functionDepth: 48
    functionLinenumber: 3200
    functionLinenumberEnd: 3218
    functionName: LposOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::write_arg_fmt
    - RedisResult::write_arg
    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:3222,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3225,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3232
      start: 3220
    functionDepth: 0
    functionLinenumber: 3220
    functionLinenumberEnd: 3232
    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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3254
      start: 3245
    functionDepth: 48
    functionLinenumber: 3245
    functionLinenumberEnd: 3254
    functionName: Direction::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::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: 3287
      start: 3282
    functionDepth: 0
    functionLinenumber: 3282
    functionLinenumberEnd: 3287
    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:3294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - Db2
    constantsTouched: []
    func_position:
      end: 3297
      start: 3292
    functionDepth: 0
    functionLinenumber: 3292
    functionLinenumberEnd: 3297
    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: 3303
      start: 3300
    functionDepth: 0
    functionLinenumber: 3300
    functionLinenumberEnd: 3303
    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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3312,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3313,1
    - Dst: i64::to_string
      Src: /src/redis-rs/redis/src/commands/mod.rs:3313,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3313,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3318
      start: 3307
    functionDepth: 48
    functionLinenumber: 3307
    functionLinenumberEnd: 3318
    functionName: CopyOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - i64::to_string
    - RedisResult::write_arg
    - String::as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - existence_check
    argTypes:
    - ExistenceCheck
    constantsTouched: []
    func_position:
      end: 3362
      start: 3359
    functionDepth: 0
    functionLinenumber: 3359
    functionLinenumberEnd: 3362
    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:3366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value_comparison
    argTypes:
    - ValueComparison
    constantsTouched: []
    func_position:
      end: 3368
      start: 3365
    functionDepth: 0
    functionLinenumber: 3365
    functionLinenumberEnd: 3368
    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: 3374
      start: 3371
    functionDepth: 0
    functionLinenumber: 3371
    functionLinenumberEnd: 3374
    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:3378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expiration
    argTypes:
    - SetExpiry
    constantsTouched: []
    func_position:
      end: 3380
      start: 3377
    functionDepth: 0
    functionLinenumber: 3377
    functionLinenumberEnd: 3380
    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:3389,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3392,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3395,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3400
      start: 3384
    functionDepth: 49
    functionLinenumber: 3384
    functionLinenumberEnd: 3400
    functionName: SetOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::write_arg
    - Self::write_redis_args
    - write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - existence_check
    argTypes:
    - ExistenceCheck
    constantsTouched: []
    func_position:
      end: 3428
      start: 3425
    functionDepth: 0
    functionLinenumber: 3425
    functionLinenumberEnd: 3428
    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:3432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expiration
    argTypes:
    - SetExpiry
    constantsTouched: []
    func_position:
      end: 3434
      start: 3431
    functionDepth: 0
    functionLinenumber: 3431
    functionLinenumberEnd: 3434
    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:3443,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3448
      start: 3438
    functionDepth: 49
    functionLinenumber: 3438
    functionLinenumberEnd: 3448
    functionName: MSetOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - Self::write_redis_args
    - write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - blocking
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 3474
      start: 3471
    functionDepth: 0
    functionLinenumber: 3471
    functionLinenumberEnd: 3474
    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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3483,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3487
      start: 3478
    functionDepth: 48
    functionLinenumber: 3478
    functionLinenumberEnd: 3487
    functionName: FlushAllOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::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:3504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - field_existence_check
    argTypes:
    - FieldExistenceCheck
    constantsTouched: []
    func_position:
      end: 3506
      start: 3503
    functionDepth: 0
    functionLinenumber: 3503
    functionLinenumberEnd: 3506
    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:3510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expiration
    argTypes:
    - SetExpiry
    constantsTouched: []
    func_position:
      end: 3512
      start: 3509
    functionDepth: 0
    functionLinenumber: 3509
    functionLinenumberEnd: 3512
    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:3521,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3527
      start: 3516
    functionDepth: 49
    functionLinenumber: 3516
    functionLinenumberEnd: 3527
    functionName: HashFieldExpirationOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - Self::write_redis_args
    - write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3537,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3538,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/commands/mod.rs:3538,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3538,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3541,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3542,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/commands/mod.rs:3542,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3542,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3545,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3546,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/commands/mod.rs:3546,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3546,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3549,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3550,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/commands/mod.rs:3550,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3550,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3556
      start: 3531
    functionDepth: 48
    functionLinenumber: 3531
    functionLinenumberEnd: 3556
    functionName: Expiry::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - to_string
    - as_bytes
    - RedisResult::write_arg
    - String::as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3576,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3582
      start: 3570
    functionDepth: 48
    functionLinenumber: 3570
    functionLinenumberEnd: 3582
    functionName: UpdateCheck::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::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:3599,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/commands/mod.rs:3600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3602
      start: 3597
    functionDepth: 54
    functionLinenumber: 3597
    functionLinenumberEnd: 3602
    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:3608,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/commands/mod.rs:3610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conditional_update
    argTypes:
    - Option<UpdateCheck>
    constantsTouched: []
    func_position:
      end: 3612
      start: 3606
    functionDepth: 54
    functionLinenumber: 3606
    functionLinenumberEnd: 3612
    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:3619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conditional_update
    argTypes:
    - Option<UpdateCheck>
    constantsTouched: []
    func_position:
      end: 3621
      start: 3616
    functionDepth: 54
    functionLinenumber: 3616
    functionLinenumberEnd: 3621
    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: 3628
      start: 3625
    functionDepth: 0
    functionLinenumber: 3625
    functionLinenumberEnd: 3628
    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: 3635
      start: 3632
    functionDepth: 0
    functionLinenumber: 3632
    functionLinenumberEnd: 3635
    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:3644,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3648,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3651,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3654,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3656
      start: 3639
    functionDepth: 49
    functionLinenumber: 3639
    functionLinenumberEnd: 3656
    functionName: SortedSetAddOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::write_arg
    - Self::write_redis_args
    - write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/commands/mod.rs:3662,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3663,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/commands/mod.rs:3665,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3669,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/commands/mod.rs:3669,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3669,1
    - Dst: '&''static str::as_bytes'
      Src: /src/redis-rs/redis/src/commands/mod.rs:3669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&RedisConnectionInfo'
    constantsTouched: []
    func_position:
      end: 3673
      start: 3661
    functionDepth: 50
    functionLinenumber: 3661
    functionLinenumberEnd: 3673
    functionName: resp3_hello
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 1
    functionsReached:
    - '&''static str::as_bytes'
    - cmd::cmd
    - arg
    - Cmd::arg
    - as_ref
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: Cmd
    signature: 'pub fn resp3_hello(connection_info: &RedisConnectionInfo) -> Cmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enabled
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: VSimOptions::set_with_scores
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_with_scores(mut self, enabled: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - count
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: VSimOptions::set_count
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_count(mut self, count: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - factor
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: VSimOptions::set_search_exploration_factor
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_search_exploration_factor(mut self, factor: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:69,1
    - Dst: Self::into
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - expression
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: VSimOptions::set_filter_expression
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - 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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:98,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:102,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:103,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:107,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:108,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:112,1
    - Dst: RedisResult::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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:117,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:118,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:122,1
    - Dst: RedisResult::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: 48
    functionLinenumber: 93
    functionLinenumberEnd: 128
    functionName: VSimOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - as_bytes
    - RedisResult::write_arg_fmt
    - RedisResult::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_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: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:156,1
    - Dst: RedisResult::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: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:162,1
    - Dst: RedisResult::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: 49
    functionLinenumber: 148
    functionLinenumberEnd: 172
    functionName: EmbeddingInput::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - len
    - RedisResult::write_arg_fmt
    - Result::write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:193,1
    - Dst: RedisResult::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: RedisResult::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: 48
    functionLinenumber: 186
    functionLinenumberEnd: 204
    functionName: VectorAddInput::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - impl io::Write + '_::write_all
    - RedisResult::writer_for_next_arg
    - to_le_bytes
    - RedisResult::write_arg
    - 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/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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:306,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:311,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:312,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:313,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:318,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:319,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:323,1
    - Dst: RedisResult::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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:328,1
    - Dst: RedisResult::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: 48
    functionLinenumber: 301
    functionLinenumberEnd: 331
    functionName: VAddOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - serde_json::to_vec
    - RedisResult::write_arg_fmt
    - RedisResult::write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 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: RedisResult::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: 48
    functionLinenumber: 363
    functionLinenumberEnd: 370
    functionName: VEmbOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - RedisResult::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_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:394,1
    - Dst: RedisResult::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: RedisResult::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: RedisResult::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: 48
    functionLinenumber: 387
    functionLinenumberEnd: 409
    functionName: VectorSimilaritySearchInput::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - impl io::Write + '_::write_all
    - RedisResult::writer_for_next_arg
    - to_le_bytes
    - RedisResult::write_arg
    - 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: 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: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:77,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:78,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:80,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:81,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:82,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:83,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:84,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:85,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:87,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:88,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:89,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:90,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:91,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:92,1
    - Dst: RedisResult::write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:94,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:95,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:96,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:98,1
    - Dst: RedisResult::write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:100,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/acl.rs:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 102
      start: 70
    functionDepth: 48
    functionLinenumber: 70
    functionLinenumberEnd: 102
    functionName: Rule::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - as_bytes
    - RedisResult::write_arg_fmt
    - RedisResult::write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::as_sequence
      Src: /src/redis-rs/redis/src/commands/acl.rs:143,1
    - Dst: Option::ok_or_else
      Src: /src/redis-rs/redis/src/commands/acl.rs:143,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:145,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/acl.rs:143,1
    - Dst: skip
      Src: /src/redis-rs/redis/src/commands/acl.rs:143,1
    - Dst: step_by
      Src: /src/redis-rs/redis/src/commands/acl.rs:143,1
    - Dst: next
      Src: /src/redis-rs/redis/src/commands/acl.rs:150,1
    - Dst: next
      Src: /src/redis-rs/redis/src/commands/acl.rs:150,1
    - Dst: next
      Src: /src/redis-rs/redis/src/commands/acl.rs:150,1
    - Dst: next
      Src: /src/redis-rs/redis/src/commands/acl.rs:150,1
    - Dst: as_sequence
      Src: /src/redis-rs/redis/src/commands/acl.rs:155,1
    - Dst: ok_or_else
      Src: /src/redis-rs/redis/src/commands/acl.rs:155,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:158,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/acl.rs:155,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/acl.rs:155,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/src/commands/acl.rs:162,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:163,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:164,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:165,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:166,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:167,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:168,1
    - Dst: Rule::Other
      Src: /src/redis-rs/redis/src/commands/acl.rs:168,1
    - Dst: String::from_utf8_lossy
      Src: /src/redis-rs/redis/src/commands/acl.rs:168,1
    - Dst: into_owned
      Src: /src/redis-rs/redis/src/commands/acl.rs:168,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/acl.rs:170,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:170,1
    - Dst: "as_sequence()\n                    .ok_or_else(|| {\n                \
        \        not_convertible_error!(flags, \"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:155,1
    - Dst: as_sequence
      Src: /src/redis-rs/redis/src/commands/acl.rs:177,1
    - Dst: ok_or_else
      Src: /src/redis-rs/redis/src/commands/acl.rs:177,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:180,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/acl.rs:177,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/acl.rs:177,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:183,1
    - Dst: Rule::AddHashedPass
      Src: /src/redis-rs/redis/src/commands/acl.rs:183,1
    - Dst: String::from_redis_value_ref
      Src: /src/redis-rs/redis/src/commands/acl.rs:183,1
    - Dst: "as_sequence()\n                    .ok_or_else(|| {\n                \
        \        not_convertible_error!(flags, \"Expect an array response of ACL flags\"\
        )\n                    })?\n                    .iter()\n                \
        \    .map(|pass| Ok(Rule::AddHashedPass(String::from_redis_value_ref(pass)?)))\n\
        \                    .collect::<Result<_, ParsingError>>"
      Src: /src/redis-rs/redis/src/commands/acl.rs:177,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/commands/acl.rs:187,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/acl.rs:189,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:189,1
    - Dst: split_terminator
      Src: /src/redis-rs/redis/src/commands/acl.rs:186,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/acl.rs:186,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/src/commands/acl.rs:197,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:197,1
    - Dst: Rule::AddCategory
      Src: /src/redis-rs/redis/src/commands/acl.rs:197,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/commands/acl.rs:197,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/src/commands/acl.rs:198,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:198,1
    - Dst: Rule::RemoveCategory
      Src: /src/redis-rs/redis/src/commands/acl.rs:198,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/commands/acl.rs:198,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/src/commands/acl.rs:199,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:199,1
    - Dst: Rule::AddCommand
      Src: /src/redis-rs/redis/src/commands/acl.rs:199,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/commands/acl.rs:199,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/src/commands/acl.rs:200,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:200,1
    - Dst: Rule::RemoveCommand
      Src: /src/redis-rs/redis/src/commands/acl.rs:200,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/commands/acl.rs:200,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/acl.rs:201,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:201,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:186,1
    - Dst: as_sequence
      Src: /src/redis-rs/redis/src/commands/acl.rs:208,1
    - Dst: Option::ok_or_else
      Src: /src/redis-rs/redis/src/commands/acl.rs:208,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:210,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/acl.rs:208,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/acl.rs:208,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:212,1
    - Dst: Rule::Pattern
      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:212,1
    - Dst: "as_sequence()\n                    .ok_or_else(|| not_convertible_error!(keys,\
        \ \"\"))?\n                    .iter()\n                    .map(|pat| Ok(Rule::Pattern(String::from_redis_value_ref(pat)?)))\n\
        \                    .collect::<Result<_, ParsingError>>"
      Src: /src/redis-rs/redis/src/commands/acl.rs:208,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/acl.rs:218,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:218,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:225,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 141
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 231
      start: 142
    functionDepth: 47
    functionLinenumber: 142
    functionLinenumberEnd: 231
    functionName: AclInfo::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - split_terminator
    - "as_sequence()\n                    .ok_or_else(|| {\n                     \
      \   not_convertible_error!(flags, \"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<_, _>>"
    - Result::as_sequence
    - to_owned
    - Ok
    - as_slice
    - std::str::from_utf8
    - Option::ok_or_else
    - skip
    - String::from_utf8_lossy
    - Rule::AddCategory
    - "as_sequence()\n                    .ok_or_else(|| not_convertible_error!(keys,\
      \ \"\"))?\n                    .iter()\n                    .map(|pat| Ok(Rule::Pattern(String::from_redis_value_ref(pat)?)))\n\
      \                    .collect::<Result<_, ParsingError>>"
    - Rule::AddCommand
    - Rule::RemoveCommand
    - map
    - Rule::Other
    - "as_sequence()\n                    .ok_or_else(|| {\n                     \
      \   not_convertible_error!(flags, \"Expect an array response of ACL flags\"\
      )\n                    })?\n                    .iter()\n                  \
      \  .map(|pass| Ok(Rule::AddHashedPass(String::from_redis_value_ref(pass)?)))\n\
      \                    .collect::<Result<_, ParsingError>>"
    - iter
    - not_convertible_error
    - Err
    - as_sequence
    - Rule::RemoveCategory
    - Rule::AddHashedPass
    - Rule::Pattern
    - into_owned
    - String::from_redis_value_ref
    - next
    - step_by
    - "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<_,\
      \ _>>"
    - ok_or_else
    - starts_with
    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:248,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:249,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:250,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:251,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:252,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:253,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:254,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:255,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:256,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:257,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:258,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:264,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:270,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:271,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:272,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:273,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:274,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 245
    functionDepth: 48
    functionLinenumber: 245
    functionLinenumberEnd: 276
    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:280,1
    - Dst: AclInfo::from_redis_value_ref
      Src: /src/redis-rs/redis/src/commands/acl.rs:293,1
    - Dst: Result::expect
      Src: /src/redis-rs/redis/src/commands/acl.rs:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 279
    functionDepth: 56
    functionLinenumber: 279
    functionLinenumberEnd: 307
    functionName: tests::test_from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - AclInfo::from_redis_value_ref
    - Result::expect
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn test_from_redis_value()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 9
    functionName: main
    functionSourceFile: /src/redis-rs/afl/parser/src/main.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instant::now
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:24,1
    - Dst: tokio::time::interval
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:25,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:25,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:28,1
    - Dst: checked_duration_since
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:28,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:28,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:28,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:29,1
    - Dst: tick
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:31,1
    - Dst: future::join3
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:40,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:41,1
    - Dst: redis::Cmd::query_async
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:41,1
    - Dst: C::clone
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:41,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:42,1
    - Dst: redis::Cmd::query_async
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:42,1
    - Dst: C::clone
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:42,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:43,1
    - Dst: redis::Cmd::query_async
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 1
    argNames:
    - con
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 50
      start: 23
    functionDepth: 50
    functionLinenumber: 23
    functionLinenumberEnd: 50
    functionName: run_multi
    functionSourceFile: /src/redis-rs/redis/examples/async-connection-loss.rs
    functionUses: 0
    functionsReached:
    - C::clone
    - Duration::from_millis
    - checked_duration_since
    - redis::Cmd::query_async
    - Ok
    - tick
    - future::join3
    - Duration::from_secs
    - redis::cmd
    - tokio::time::interval
    - unwrap
    - Instant::now
    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: 55
    functionLinenumber: 37
    functionLinenumberEnd: 118
    functionName: demo_group_reads
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 0
    functionsReached:
    - RedisResult::iter
    - RedisResult::expect
    - thread::spawn
    - Duration::from_millis
    - join
    - collect
    - thread::sleep
    - expect
    - Result::get_connection
    - read_group_records
    - push
    - clone
    - add_records
    - xgroup_create_mkstream
    - xack
    - random_wait_millis
    - map
    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: 40
    functionLinenumber: 122
    functionLinenumberEnd: 167
    functionName: add_records
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 1
    functionsReached:
    - StreamMaxlen::Approx
    - RedisResult::expect
    - get_connection
    - Ok
    - thrifty_rand
    - xadd_maxlen
    - arbitrary_value
    linkageType: ''
    returnType: RedisResult
    signature: 'fn add_records(client: &redis::Client) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/examples/streams.rs:172,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/examples/streams.rs:172,1
    - Dst: expect
      Src: /src/redis-rs/redis/examples/streams.rs:172,1
    - Dst: as_nanos
      Src: /src/redis-rs/redis/examples/streams.rs:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: thrifty_rand
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 1
    functionsReached:
    - expect
    - SystemTime::now
    - as_nanos
    - duration_since
    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: 40
    functionLinenumber: 206
    functionLinenumberEnd: 235
    functionName: read_records
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 0
    functionsReached:
    - xread_options
    - RedisResult::expect
    - get_connection
    - Ok
    - expect
    - StreamReadOptions::default
    - Self::block
    linkageType: ''
    returnType: RedisResult
    signature: 'fn read_records(client: &redis::Client) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - slowness
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: consumer_name
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: 'fn consumer_name(slowness: u8) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection
      Src: /src/redis-rs/redis/examples/streams.rs:244,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/examples/streams.rs:244,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/examples/streams.rs:246,1
    - Dst: Self::block
      Src: /src/redis-rs/redis/examples/streams.rs:246,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/examples/streams.rs:246,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/examples/streams.rs:246,1
    - Dst: consumer_name
      Src: /src/redis-rs/redis/examples/streams.rs:249,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/examples/streams.rs:251,1
    - Dst: expect
      Src: /src/redis-rs/redis/examples/streams.rs:251,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/streams.rs:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - client
    - slowness
    argTypes:
    - '&redis::Client'
    - u8
    constantsTouched: []
    func_position:
      end: 260
      start: 243
    functionDepth: 40
    functionLinenumber: 243
    functionLinenumberEnd: 260
    functionName: read_group_records
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 1
    functionsReached:
    - RedisResult::expect
    - xread_options
    - get_connection
    - Self::count
    - Ok
    - expect
    - StreamReadOptions::default
    - consumer_name
    - Self::group
    - Self::block
    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: 40
    functionLinenumber: 262
    functionLinenumberEnd: 271
    functionName: clean_up
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 0
    functionsReached:
    - StreamMaxlen::Equals
    - RedisResult::expect
    - get_connection
    - xtrim
    - 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/geospatial.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: run
    functionSourceFile: /src/redis-rs/redis/examples/geospatial.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: 55
    functionLinenumber: 4
    functionLinenumberEnd: 30
    functionName: test_cmd
    functionSourceFile: /src/redis-rs/redis/examples/async-multiplexed.rs
    functionUses: 1
    functionsReached:
    - RedisResult::map
    - redis::Cmd::arg
    - Self::clone
    - '&mut Cmd::query_async'
    - '&mut Cmd::exec_async'
    - Ok
    - exec_async
    - redis::cmd
    - '&mut Cmd::arg'
    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: 50
    functionLinenumber: 10
    functionLinenumberEnd: 39
    functionName: do_print_max_entry_limits
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - Ok
    - query
    - redis::cmd
    - '&mut Cmd::arg'
    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: 50
    functionLinenumber: 44
    functionLinenumberEnd: 73
    functionName: do_show_scanning
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - iter::<i32>
    - Pipeline::exec
    - Ok
    - redis::cmd
    - Cmd::arg
    - Pipeline::cmd
    - '&mut Cmd::cursor_arg'
    - '&mut Cmd::arg'
    - redis::pipe
    - ignore
    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: 50
    functionLinenumber: 76
    functionLinenumberEnd: 116
    functionName: do_atomic_increment_lowlevel
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - ignore
    - exec
    - '&mut Pipeline::cmd'
    - redis::Pipeline::atomic
    - Ok
    - '&mut Cmd::exec'
    - arg
    - query
    - redis::cmd
    - '&mut Cmd::query'
    - cmd
    - redis::pipe
    - '&mut Cmd::arg'
    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: 51
    functionLinenumber: 119
    functionLinenumberEnd: 138
    functionName: do_atomic_increment
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - get
    - Ok
    - '&mut redis::Connection::set'
    - '&mut redis::Connection::get'
    - Pipeline::set
    - redis::transaction
    - query
    - ignore
    linkageType: ''
    returnType: redis::RedisResult
    signature: 'fn do_atomic_increment(con: &mut redis::Connection) -> redis::RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/examples/basic.rs:143,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/examples/basic.rs:144,1
    - Dst: do_print_max_entry_limits
      Src: /src/redis-rs/redis/examples/basic.rs:147,1
    - Dst: do_show_scanning
      Src: /src/redis-rs/redis/examples/basic.rs:150,1
    - Dst: do_atomic_increment_lowlevel
      Src: /src/redis-rs/redis/examples/basic.rs:153,1
    - Dst: do_atomic_increment
      Src: /src/redis-rs/redis/examples/basic.rs:154,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/basic.rs:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 157
      start: 141
    functionDepth: 40
    functionLinenumber: 141
    functionLinenumberEnd: 157
    functionName: do_redis_code
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - do_print_max_entry_limits
    - do_show_scanning
    - do_atomic_increment_lowlevel
    - get_connection
    - do_atomic_increment
    - Ok
    - redis::Client::open
    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: 47
    functionLinenumber: 15
    functionLinenumberEnd: 43
    functionName: bench_set_get_and_del
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - redis::Cmd::arg
    - std::hint::black_box
    - exec
    - finish
    - bench_function
    - RedisResult::unwrap
    - set_and_del
    - '&mut Cmd::exec'
    - redis::cmd
    - benchmark_group
    - unwrap
    - arg(key).query::<isize>
    - '&mut Cmd::arg'
    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: 53
    functionLinenumber: 45
    functionLinenumberEnd: 79
    functionName: bench_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - throughput
    - Pipeline::exec
    - Vec::new
    - build_pipeline
    - std::hint::black_box
    - finish
    - bench_function
    - Throughput::Elements
    - RedisResult::unwrap
    - Pipeline::set
    - benchmark_group
    - RedisServer::push
    - redis::cluster::cluster_pipe
    - ignore
    linkageType: ''
    returnType: void
    signature: 'fn bench_pipeline(c: &mut Criterion, con: &mut redis::cluster::ClusterConnection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:82,1
    - Dst: RedisClusterConfiguration::single_replica_config
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:82,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:83,1
    - Dst: current_thread_runtime
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:84,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:85,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:85,1
    - Dst: bench_cluster_async
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 50
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: bench_cluster_setup
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster_async.rs
    functionUses: 0
    functionsReached:
    - RedisClusterConfiguration::single_replica_config
    - tokio::runtime::Runtime::block_on
    - TestClusterContext::new_with_config
    - bench_cluster_async
    - Result::async_connection
    - Result::wait_for_cluster_up
    - current_thread_runtime
    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: 49
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: bench_cluster_read_from_replicas_setup
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster.rs
    functionUses: 0
    functionsReached:
    - RedisClusterConfiguration::single_replica_config
    - Result::connection
    - TestClusterContext::new_with_config_and_builder
    - bench_pipeline
    - read_from_replicas
    - 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: 47
    functionLinenumber: 15
    functionLinenumberEnd: 78
    functionName: bench_cluster_async
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster_async.rs
    functionUses: 1
    functionsReached:
    - finish
    - '&mut Cmd::exec_async'
    - bench_function
    - Ok
    - exec_async
    - "iter()\n                        .zip(&mut connections)\n                  \
      \      .map(|(cmd, con)| cmd.exec_async(con))\n                        .collect::<stream::FuturesUnordered<_>>"
    - clone
    - Pipeline::set
    - '&mut redis::cluster_async::ClusterConnection::clone'
    - '&mut Cmd::arg'
    - i64::iter
    - try_for_each
    - .num_parallel).map(|_| con.clone()).collect::<Vec<_>>
    - collect
    - benchmark_group
    - unwrap
    - Ok::<_, RedisError>
    - map
    - RedisResult::iter
    - redis::Cmd::arg
    - '&mut Cmd::query_async'
    - Cmd::exec_async
    - zip
    - tokio::runtime::Runtime::block_on
    - redis::cmd
    - std::hint::black_box
    - Pipeline::exec_async
    - '&str::to_string'
    - redis::pipe
    - ignore
    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: 47
    functionLinenumber: 15
    functionLinenumberEnd: 35
    functionName: generate_commands
    functionSourceFile: /src/redis-rs/redis/benches/bench_cache.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - take
    - rand::rng
    - sample_iter
    - '&mut Cmd::clone'
    - RedisResult::push
    - redis::cmd
    - random_range
    - clone
    - unwrap
    - Bernoulli::from_ratio
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: Vec
    signature: 'fn generate_commands(key: String, total_command: u32, total_read:
      u32) -> Vec<Cmd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/benches/bench_cache.rs: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: 49
    functionLinenumber: 37
    functionLinenumberEnd: 70
    functionName: benchmark_executer
    functionSourceFile: /src/redis-rs/redis/benches/bench_cache.rs
    functionUses: 0
    functionsReached:
    - generate_commands
    - Vec::new
    - TestContext::new
    - rand::rng
    - tokio::spawn
    - TestContext::multiplexed_async_connection_tokio
    - clone
    - Cmd::query_async
    - unwrap
    - TestContext::async_connection_with_cache_config
    - RedisServer::push
    - CacheConfig::new
    linkageType: ''
    returnType: void
    signature: 'async fn benchmark_executer(is_cache_enabled: bool,read_ratio: f32,per_key_command:
      u32,key_count: u32,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::runtime::Builder::new_multi_thread
      Src: /src/redis-rs/redis/benches/bench_cache.rs: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:
    - worker_threads
    - tokio::runtime::Runtime::block_on
    - enable_all
    - '&mut Bencher::iter'
    - build
    - benchmark_executer
    - unwrap
    - tokio::runtime::Builder::new_multi_thread
    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: 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: 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: 55
    functionLinenumber: 95
    functionLinenumberEnd: 130
    functionName: bench_cache
    functionSourceFile: /src/redis-rs/redis/benches/bench_cache.rs
    functionUses: 0
    functionsReached:
    - throughput
    - prepare_benchmark
    - finish
    - bench_function
    - Throughput::Elements
    - sample_size
    - env::var
    - benchmark_group
    - clone
    - unwrap_or_default
    linkageType: ''
    returnType: void
    signature: 'fn bench_cache(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/benches/bench_basic.rs:11,1
    - Dst: 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: 49
    functionLinenumber: 10
    functionLinenumberEnd: 20
    functionName: bench_simple_getsetdel
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - redis::Cmd::arg
    - exec
    - RedisResult::unwrap
    - '&mut Cmd::exec'
    - TestContext::connection
    - redis::cmd
    - '&mut Cmd::query'
    - unwrap
    - TestContext::new
    - '&mut Cmd::arg'
    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: 49
    functionLinenumber: 22
    functionLinenumberEnd: 42
    functionName: bench_simple_getsetdel_async
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - redis::Cmd::arg
    - '&mut Cmd::query_async'
    - tokio::runtime::Runtime::block_on
    - '&mut Cmd::exec_async'
    - exec_async
    - TestContext::async_connection
    - redis::cmd
    - current_thread_runtime
    - unwrap
    - Ok::<_, RedisError>
    - TestContext::new
    - '&mut Cmd::arg'
    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: 49
    functionLinenumber: 44
    functionLinenumberEnd: 63
    functionName: bench_simple_getsetdel_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - redis::Cmd::arg
    - ignore
    - TestContext::connection
    - arg
    - query
    - unwrap
    - redis::Pipeline::cmd
    - TestContext::new
    - cmd
    - redis::pipe
    - '&mut Cmd::arg'
    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: 49
    functionLinenumber: 65
    functionLinenumberEnd: 83
    functionName: bench_simple_getsetdel_pipeline_precreated
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - redis::Cmd::arg
    - ignore
    - RedisResult::unwrap
    - TestContext::connection
    - arg
    - Pipeline::cmd
    - Pipeline::query
    - TestContext::new
    - cmd
    - redis::pipe
    - '&mut Cmd::arg'
    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: 51
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: long_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - ignore
    - redis::pipe
    - Pipeline::set
    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: 49
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: bench_long_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - Pipeline::exec
    - long_pipeline
    - RedisResult::unwrap
    - TestContext::connection
    - TestContext::new
    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: 49
    functionLinenumber: 107
    functionLinenumberEnd: 119
    functionName: bench_async_long_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - long_pipeline
    - tokio::runtime::Runtime::block_on
    - TestContext::async_connection
    - current_thread_runtime
    - unwrap
    - TestContext::new
    - 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: 49
    functionLinenumber: 121
    functionLinenumberEnd: 135
    functionName: bench_multiplexed_async_long_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - long_pipeline
    - tokio::runtime::Runtime::block_on
    - TestContext::multiplexed_async_connection_tokio
    - current_thread_runtime
    - unwrap
    - TestContext::new
    - 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: 49
    functionLinenumber: 137
    functionLinenumberEnd: 164
    functionName: bench_multiplexed_async_implicit_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - Ok
    - clone
    - '&mut Cmd::arg'
    - i64::iter
    - ".PIPELINE_QUERIES)\n        .map(|_| con.clone())\n        .collect::<Vec<_>>"
    - try_for_each
    - collect
    - unwrap
    - "iter()\n                    .zip(&mut connections)\n                    .map(|(cmd,\
      \ con)| cmd.exec_async(con))\n                    .collect::<stream::FuturesUnordered<_>>"
    - map
    - RedisResult::iter
    - redis::Cmd::arg
    - Cmd::exec_async
    - zip
    - tokio::runtime::Runtime::block_on
    - TestContext::multiplexed_async_connection_tokio
    - redis::cmd
    - current_thread_runtime
    - TestContext::new
    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
    - finish
    - bench_function
    - Throughput::Elements
    - benchmark_group
    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: 47
    functionLinenumber: 194
    functionLinenumberEnd: 204
    functionName: bench_encode_small
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - arg
    - redis::cmd
    - Cmd::arg
    - Cmd::get_packed_command
    - '&mut 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: 47
    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
    - redis::pipe
    - ignore
    linkageType: ''
    returnType: void
    signature: 'fn bench_encode_integer(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:218,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/benches/bench_basic.rs:219,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/benches/bench_basic.rs:222,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_basic.rs:222,1
    - Dst: Pipeline::get_packed_pipeline
      Src: /src/redis-rs/redis/benches/bench_basic.rs:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 47
    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
    - redis::pipe
    - ignore
    linkageType: ''
    returnType: void
    signature: 'fn bench_encode_pipeline(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:229,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/benches/bench_basic.rs:230,1
    - Dst: Pipeline::mset
      Src: /src/redis-rs/redis/benches/bench_basic.rs:233,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_basic.rs:233,1
    - Dst: Pipeline::get_packed_pipeline
      Src: /src/redis-rs/redis/benches/bench_basic.rs:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 243
      start: 228
    functionDepth: 47
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: bench_encode_pipeline_nested
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - Pipeline::get_packed_pipeline
    - Pipeline::mset
    - redis::pipe
    - ignore
    linkageType: ''
    returnType: void
    signature: 'fn bench_encode_pipeline_nested(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: benchmark_group
      Src: /src/redis-rs/redis/benches/bench_basic.rs:246,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:247,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:247,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:247,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:247,1
    - Dst: finish
      Src: /src/redis-rs/redis/benches/bench_basic.rs:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 253
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 253
    functionName: bench_encode
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - finish
    - bench_function
    - benchmark_group
    linkageType: ''
    returnType: void
    signature: 'fn bench_encode(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:256,1
    - Dst: redis::parse_redis_value
      Src: /src/redis-rs/redis/benches/bench_basic.rs:256,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - b
    - input
    argTypes:
    - '&mut Bencher'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 47
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: bench_decode_simple
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - RedisResult::unwrap
    - redis::parse_redis_value
    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: 53
    functionLinenumber: 258
    functionLinenumberEnd: 276
    functionName: bench_decode
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - bench_decode_simple
    - support::encode_value
    - Vec::new
    - io::Result::unwrap
    - finish
    - bench_function
    - Value::Array
    - benchmark_group
    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: 50
    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::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:
  - 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::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
  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:
  - 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
  - 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
  - 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
  source_file: /src/redis-rs/redis/src/client.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:
  - 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
  - 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:
  - 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::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
  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::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
  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::from
  - InternalRoutingInfo::from
  - 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::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
  - Request::respond
  - 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::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:
  - 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
