(key string, start, stop int)
| 223 | } |
| 224 | |
| 225 | func (c *Client) LRange(key string, start, stop int) ([]interface{}, error) { |
| 226 | client, err := newListGrpcClient(c.Addr) |
| 227 | if err != nil { |
| 228 | return nil, errors.New("new grpc client error: " + err.Error()) |
| 229 | } |
| 230 | |
| 231 | req := &glist.GListLRangeRequest{ |
| 232 | Key: key, |
| 233 | Start: int32(start), |
| 234 | Stop: int32(stop), |
| 235 | } |
| 236 | |
| 237 | resp, err := client.LRange(context.Background(), req) |
| 238 | if err != nil { |
| 239 | return nil, errors.New("client LRange failed: " + err.Error()) |
| 240 | } |
| 241 | |
| 242 | // Convert the response to a slice of interface{} based on the gRPC response |
| 243 | var values []interface{} |
| 244 | for _, val := range resp.Values { |
| 245 | switch v := val.Value.(type) { |
| 246 | case *glist.Value_StringValue: |
| 247 | values = append(values, v.StringValue) |
| 248 | case *glist.Value_Int32Value: |
| 249 | values = append(values, v.Int32Value) |
| 250 | case *glist.Value_Int64Value: |
| 251 | values = append(values, v.Int64Value) |
| 252 | case *glist.Value_Float32Value: |
| 253 | values = append(values, v.Float32Value) |
| 254 | case *glist.Value_Float64Value: |
| 255 | values = append(values, v.Float64Value) |
| 256 | case *glist.Value_BoolValue: |
| 257 | values = append(values, v.BoolValue) |
| 258 | case *glist.Value_BytesValue: |
| 259 | values = append(values, v.BytesValue) |
| 260 | default: |
| 261 | return nil, errors.New("unknown value type") |
| 262 | } |
| 263 | } |
| 264 | |
| 265 | return values, nil |
| 266 | } |
| 267 | |
| 268 | func (c *Client) LLen(key string) (int32, error) { |
| 269 | client, err := newListGrpcClient(c.Addr) |
nothing calls this directly
no test coverage detected