forked from mirror/redis
Making LpushX and RpushX variadic
This commit is contained in:
parent
94359d94c1
commit
5c3de7537a
22
commands.go
22
commands.go
|
@ -140,7 +140,7 @@ type Cmdable interface {
|
|||
LLen(key string) *IntCmd
|
||||
LPop(key string) *StringCmd
|
||||
LPush(key string, values ...interface{}) *IntCmd
|
||||
LPushX(key string, value interface{}) *IntCmd
|
||||
LPushX(key string, value interface{}, values ...interface{}) *IntCmd
|
||||
LRange(key string, start, stop int64) *StringSliceCmd
|
||||
LRem(key string, count int64, value interface{}) *IntCmd
|
||||
LSet(key string, index int64, value interface{}) *StatusCmd
|
||||
|
@ -148,7 +148,7 @@ type Cmdable interface {
|
|||
RPop(key string) *StringCmd
|
||||
RPopLPush(source, destination string) *StringCmd
|
||||
RPush(key string, values ...interface{}) *IntCmd
|
||||
RPushX(key string, value interface{}) *IntCmd
|
||||
RPushX(key string, value interface{}, values ...interface{}) *IntCmd
|
||||
SAdd(key string, members ...interface{}) *IntCmd
|
||||
SCard(key string) *IntCmd
|
||||
SDiff(keys ...string) *StringSliceCmd
|
||||
|
@ -1087,8 +1087,13 @@ func (c cmdable) LPush(key string, values ...interface{}) *IntCmd {
|
|||
return cmd
|
||||
}
|
||||
|
||||
func (c cmdable) LPushX(key string, value interface{}) *IntCmd {
|
||||
cmd := NewIntCmd("lpushx", key, value)
|
||||
func (c cmdable) LPushX(key string, value interface{}, values ...interface{}) *IntCmd {
|
||||
args := make([]interface{}, 3, 3+len(values))
|
||||
args[0] = "lpushx"
|
||||
args[1] = key
|
||||
args[2] = value
|
||||
args = appendArgs(args, values)
|
||||
cmd := NewIntCmd(args...)
|
||||
c(cmd)
|
||||
return cmd
|
||||
}
|
||||
|
@ -1149,8 +1154,13 @@ func (c cmdable) RPush(key string, values ...interface{}) *IntCmd {
|
|||
return cmd
|
||||
}
|
||||
|
||||
func (c cmdable) RPushX(key string, value interface{}) *IntCmd {
|
||||
cmd := NewIntCmd("rpushx", key, value)
|
||||
func (c cmdable) RPushX(key string, value interface{}, values ...interface{}) *IntCmd {
|
||||
args := make([]interface{}, 3, 3+len(values))
|
||||
args[0] = "rpushx"
|
||||
args[1] = key
|
||||
args[2] = value
|
||||
args = appendArgs(args, values)
|
||||
cmd := NewIntCmd(args...)
|
||||
c(cmd)
|
||||
return cmd
|
||||
}
|
||||
|
|
|
@ -1652,6 +1652,14 @@ var _ = Describe("Commands", func() {
|
|||
Expect(lPushX.Err()).NotTo(HaveOccurred())
|
||||
Expect(lPushX.Val()).To(Equal(int64(2)))
|
||||
|
||||
lPush = client.LPush("list1", "three")
|
||||
Expect(lPush.Err()).NotTo(HaveOccurred())
|
||||
Expect(lPush.Val()).To(Equal(int64(1)))
|
||||
|
||||
lPushX = client.LPushX("list1", "two", "one")
|
||||
Expect(lPushX.Err()).NotTo(HaveOccurred())
|
||||
Expect(lPushX.Val()).To(Equal(int64(3)))
|
||||
|
||||
lPushX = client.LPushX("list2", "Hello")
|
||||
Expect(lPushX.Err()).NotTo(HaveOccurred())
|
||||
Expect(lPushX.Val()).To(Equal(int64(0)))
|
||||
|
@ -1660,6 +1668,10 @@ var _ = Describe("Commands", func() {
|
|||
Expect(lRange.Err()).NotTo(HaveOccurred())
|
||||
Expect(lRange.Val()).To(Equal([]string{"Hello", "World"}))
|
||||
|
||||
lRange = client.LRange("list1", 0, -1)
|
||||
Expect(lRange.Err()).NotTo(HaveOccurred())
|
||||
Expect(lRange.Val()).To(Equal([]string{"one", "two", "three"}))
|
||||
|
||||
lRange = client.LRange("list2", 0, -1)
|
||||
Expect(lRange.Err()).NotTo(HaveOccurred())
|
||||
Expect(lRange.Val()).To(Equal([]string{}))
|
||||
|
@ -1808,6 +1820,14 @@ var _ = Describe("Commands", func() {
|
|||
Expect(rPushX.Err()).NotTo(HaveOccurred())
|
||||
Expect(rPushX.Val()).To(Equal(int64(2)))
|
||||
|
||||
rPush = client.RPush("list1", "one")
|
||||
Expect(rPush.Err()).NotTo(HaveOccurred())
|
||||
Expect(rPush.Val()).To(Equal(int64(1)))
|
||||
|
||||
rPushX = client.RPushX("list1", "two", "three")
|
||||
Expect(rPushX.Err()).NotTo(HaveOccurred())
|
||||
Expect(rPushX.Val()).To(Equal(int64(3)))
|
||||
|
||||
rPushX = client.RPushX("list2", "World")
|
||||
Expect(rPushX.Err()).NotTo(HaveOccurred())
|
||||
Expect(rPushX.Val()).To(Equal(int64(0)))
|
||||
|
@ -1816,6 +1836,10 @@ var _ = Describe("Commands", func() {
|
|||
Expect(lRange.Err()).NotTo(HaveOccurred())
|
||||
Expect(lRange.Val()).To(Equal([]string{"Hello", "World"}))
|
||||
|
||||
lRange = client.LRange("list1", 0, -1)
|
||||
Expect(lRange.Err()).NotTo(HaveOccurred())
|
||||
Expect(lRange.Val()).To(Equal([]string{"one", "two", "three"}))
|
||||
|
||||
lRange = client.LRange("list2", 0, -1)
|
||||
Expect(lRange.Err()).NotTo(HaveOccurred())
|
||||
Expect(lRange.Val()).To(Equal([]string{}))
|
||||
|
|
Loading…
Reference in New Issue