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
|
LLen(key string) *IntCmd
|
||||||
LPop(key string) *StringCmd
|
LPop(key string) *StringCmd
|
||||||
LPush(key string, values ...interface{}) *IntCmd
|
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
|
LRange(key string, start, stop int64) *StringSliceCmd
|
||||||
LRem(key string, count int64, value interface{}) *IntCmd
|
LRem(key string, count int64, value interface{}) *IntCmd
|
||||||
LSet(key string, index int64, value interface{}) *StatusCmd
|
LSet(key string, index int64, value interface{}) *StatusCmd
|
||||||
|
@ -148,7 +148,7 @@ type Cmdable interface {
|
||||||
RPop(key string) *StringCmd
|
RPop(key string) *StringCmd
|
||||||
RPopLPush(source, destination string) *StringCmd
|
RPopLPush(source, destination string) *StringCmd
|
||||||
RPush(key string, values ...interface{}) *IntCmd
|
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
|
SAdd(key string, members ...interface{}) *IntCmd
|
||||||
SCard(key string) *IntCmd
|
SCard(key string) *IntCmd
|
||||||
SDiff(keys ...string) *StringSliceCmd
|
SDiff(keys ...string) *StringSliceCmd
|
||||||
|
@ -1087,8 +1087,13 @@ func (c cmdable) LPush(key string, values ...interface{}) *IntCmd {
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c cmdable) LPushX(key string, value interface{}) *IntCmd {
|
func (c cmdable) LPushX(key string, value interface{}, values ...interface{}) *IntCmd {
|
||||||
cmd := NewIntCmd("lpushx", key, value)
|
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)
|
c(cmd)
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
@ -1149,8 +1154,13 @@ func (c cmdable) RPush(key string, values ...interface{}) *IntCmd {
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c cmdable) RPushX(key string, value interface{}) *IntCmd {
|
func (c cmdable) RPushX(key string, value interface{}, values ...interface{}) *IntCmd {
|
||||||
cmd := NewIntCmd("rpushx", key, value)
|
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)
|
c(cmd)
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
|
@ -1652,6 +1652,14 @@ var _ = Describe("Commands", func() {
|
||||||
Expect(lPushX.Err()).NotTo(HaveOccurred())
|
Expect(lPushX.Err()).NotTo(HaveOccurred())
|
||||||
Expect(lPushX.Val()).To(Equal(int64(2)))
|
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")
|
lPushX = client.LPushX("list2", "Hello")
|
||||||
Expect(lPushX.Err()).NotTo(HaveOccurred())
|
Expect(lPushX.Err()).NotTo(HaveOccurred())
|
||||||
Expect(lPushX.Val()).To(Equal(int64(0)))
|
Expect(lPushX.Val()).To(Equal(int64(0)))
|
||||||
|
@ -1660,6 +1668,10 @@ var _ = Describe("Commands", func() {
|
||||||
Expect(lRange.Err()).NotTo(HaveOccurred())
|
Expect(lRange.Err()).NotTo(HaveOccurred())
|
||||||
Expect(lRange.Val()).To(Equal([]string{"Hello", "World"}))
|
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)
|
lRange = client.LRange("list2", 0, -1)
|
||||||
Expect(lRange.Err()).NotTo(HaveOccurred())
|
Expect(lRange.Err()).NotTo(HaveOccurred())
|
||||||
Expect(lRange.Val()).To(Equal([]string{}))
|
Expect(lRange.Val()).To(Equal([]string{}))
|
||||||
|
@ -1808,6 +1820,14 @@ var _ = Describe("Commands", func() {
|
||||||
Expect(rPushX.Err()).NotTo(HaveOccurred())
|
Expect(rPushX.Err()).NotTo(HaveOccurred())
|
||||||
Expect(rPushX.Val()).To(Equal(int64(2)))
|
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")
|
rPushX = client.RPushX("list2", "World")
|
||||||
Expect(rPushX.Err()).NotTo(HaveOccurred())
|
Expect(rPushX.Err()).NotTo(HaveOccurred())
|
||||||
Expect(rPushX.Val()).To(Equal(int64(0)))
|
Expect(rPushX.Val()).To(Equal(int64(0)))
|
||||||
|
@ -1816,6 +1836,10 @@ var _ = Describe("Commands", func() {
|
||||||
Expect(lRange.Err()).NotTo(HaveOccurred())
|
Expect(lRange.Err()).NotTo(HaveOccurred())
|
||||||
Expect(lRange.Val()).To(Equal([]string{"Hello", "World"}))
|
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)
|
lRange = client.LRange("list2", 0, -1)
|
||||||
Expect(lRange.Err()).NotTo(HaveOccurred())
|
Expect(lRange.Err()).NotTo(HaveOccurred())
|
||||||
Expect(lRange.Val()).To(Equal([]string{}))
|
Expect(lRange.Val()).To(Equal([]string{}))
|
||||||
|
|
Loading…
Reference in New Issue