func bcountCommand(req *requestContext) error { args := req.args argCnt := len(args) if !(argCnt > 0 && argCnt <= 3) { return ErrCmdParams } // BCount(key []byte, start int32, end int32) (cnt int32, err error) { var err error var start, end int32 = 0, -1 if argCnt > 1 { start, err = ledis.StrInt32(args[1], nil) if err != nil { return ErrValue } } if argCnt > 2 { end, err = ledis.StrInt32(args[2], nil) if err != nil { return ErrValue } } if cnt, err := req.db.BCount(args[0], start, end); err != nil { return err } else { req.resp.writeInteger(int64(cnt)) } return nil }
func bsetbitCommand(req *requestContext) error { args := req.args if len(args) != 3 { return ErrCmdParams } var err error var offset int32 var val int8 offset, err = ledis.StrInt32(args[1], nil) if err != nil { return ErrOffset } val, err = ledis.StrInt8(args[2], nil) if val != 0 && val != 1 { return ErrBool } if err != nil { return ErrBool } if ori, err := req.db.BSetBit(args[0], offset, uint8(val)); err != nil { return err } else { req.resp.writeInteger(int64(ori)) } return nil }
func bsetbitCommand(c *client) error { args := c.args if len(args) != 3 { return ErrCmdParams } var err error var offset int32 var val int8 offset, err = ledis.StrInt32(args[1], nil) if err != nil { return err } val, err = ledis.StrInt8(args[2], nil) if err != nil { return err } if ori, err := c.db.BSetBit(args[0], offset, uint8(val)); err != nil { return err } else { c.writeInteger(int64(ori)) } return nil }
func bmsetbitCommand(req *requestContext) error { args := req.args if len(args) < 3 { return ErrCmdParams } key := args[0] if len(args[1:])&1 != 0 { return ErrCmdParams } else { args = args[1:] } var err error var offset int32 var val int8 pairs := make([]ledis.BitPair, len(args)>>1) for i := 0; i < len(pairs); i++ { offset, err = ledis.StrInt32(args[i<<1], nil) if err != nil { return ErrOffset } val, err = ledis.StrInt8(args[i<<1+1], nil) if val != 0 && val != 1 { return ErrBool } if err != nil { return ErrBool } pairs[i].Pos = offset pairs[i].Val = uint8(val) } if place, err := req.db.BMSetBit(key, pairs...); err != nil { return err } else { req.resp.writeInteger(place) } return nil }
func bgetbitCommand(c *client) error { args := c.args if len(args) != 2 { return ErrCmdParams } offset, err := ledis.StrInt32(args[1], nil) if err != nil { return err } if v, err := c.db.BGetBit(args[0], offset); err != nil { return err } else { c.writeInteger(int64(v)) } return nil }
func bgetbitCommand(req *requestContext) error { args := req.args if len(args) != 2 { return ErrCmdParams } offset, err := ledis.StrInt32(args[1], nil) if err != nil { return ErrOffset } if v, err := req.db.BGetBit(args[0], offset); err != nil { return err } else { req.resp.writeInteger(int64(v)) } return nil }
func lTrimBackCommand(c *client) error { args := c.args if len(args) != 2 { return ErrCmdParams } var trimSize int32 var err error trimSize, err = ledis.StrInt32(args[1], nil) if err != nil || trimSize < 0 { return ErrValue } if n, err := c.db.LTrimBack(args[0], trimSize); err != nil { return err } else { c.resp.writeInteger(int64(n)) } return nil }