zrange method

Future<Map<String, double>> zrange(
  1. String key,
  2. int start,
  3. int stop
)

zrange

Implementation

Future<Map<String, double>> zrange(String key, int start, int stop) async {
  Object result = await _runWithRetryNew(() async {
    return (await RespCommandsTier1(_client!).zrange(key, start, stop));
  });

  final Map<String, double> memberScores = {};

  if (result is RespType2<dynamic>) {
    final result1 = result.toArray().payload;
    if (result1 == null) {
      return memberScores;
    }

    for (int i = 0; i < result1.length; i += 2) {
      final member = result1[i].toBulkString().payload;
      final score = result1[i + 1].toBulkString().payload;

      if (member != null && score != null) {
        memberScores[member] = double.parse(score);
      }
    }

    return memberScores;
  }

  final result1 = (result as RespType3<dynamic>).toArray().payload;
  if (result1 == null) {
    return memberScores;
  }

  for (int i = 0; i < result1.length; i += 2) {
    final member = result1[i].toBulkString().payload;
    final score = result1[i + 1].toBulkString().payload;

    if (member != null && score != null) {
      memberScores[member] = double.parse(score);
    }
  }

  return memberScores;
}