MCPcopy Create free account
hub / github.com/ByteStorage/FlyDB / LRange

Method LRange

engine/grpc/client/list.go:225–266  ·  view source on GitHub ↗
(key string, start, stop int)

Source from the content-addressed store, hash-verified

223}
224
225func (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
268func (c *Client) LLen(key string) (int32, error) {
269 client, err := newListGrpcClient(c.Addr)

Callers

nothing calls this directly

Calls 2

newListGrpcClientFunction · 0.85
LRangeMethod · 0.65

Tested by

no test coverage detected