mirror of https://github.com/tidwall/redcon.git
commit
eadbf61d4c
17
redcon.go
17
redcon.go
|
@ -21,6 +21,8 @@ type Conn interface {
|
||||||
WriteString(str string)
|
WriteString(str string)
|
||||||
// WriteBulk writes a bulk string to the client.
|
// WriteBulk writes a bulk string to the client.
|
||||||
WriteBulk(bulk string)
|
WriteBulk(bulk string)
|
||||||
|
// WriteBulkBytes writes bulk bytes to the client.
|
||||||
|
WriteBulkBytes(bulk []byte)
|
||||||
// WriteInt writes an integer to the client.
|
// WriteInt writes an integer to the client.
|
||||||
WriteInt(num int)
|
WriteInt(num int)
|
||||||
// WriteArray writes an array header. You must then write addtional
|
// WriteArray writes an array header. You must then write addtional
|
||||||
|
@ -232,6 +234,9 @@ func (c *conn) WriteString(str string) {
|
||||||
func (c *conn) WriteBulk(bulk string) {
|
func (c *conn) WriteBulk(bulk string) {
|
||||||
c.wr.WriteBulk(bulk)
|
c.wr.WriteBulk(bulk)
|
||||||
}
|
}
|
||||||
|
func (c *conn) WriteBulkBytes(bulk []byte) {
|
||||||
|
c.wr.WriteBulkBytes(bulk)
|
||||||
|
}
|
||||||
func (c *conn) WriteInt(num int) {
|
func (c *conn) WriteInt(num int) {
|
||||||
c.wr.WriteInt(num)
|
c.wr.WriteInt(num)
|
||||||
}
|
}
|
||||||
|
@ -486,6 +491,18 @@ func (w *writer) WriteBulk(bulk string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (w *writer) WriteBulkBytes(bulk []byte) error {
|
||||||
|
if w.err != nil {
|
||||||
|
return w.err
|
||||||
|
}
|
||||||
|
w.b = append(w.b, '$')
|
||||||
|
w.b = append(w.b, []byte(strconv.FormatInt(int64(len(bulk)), 10))...)
|
||||||
|
w.b = append(w.b, '\r', '\n')
|
||||||
|
w.b = append(w.b, bulk...)
|
||||||
|
w.b = append(w.b, '\r', '\n')
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (w *writer) Flush() error {
|
func (w *writer) Flush() error {
|
||||||
if w.err != nil {
|
if w.err != nil {
|
||||||
return w.err
|
return w.err
|
||||||
|
|
|
@ -196,6 +196,8 @@ func TestServer(t *testing.T) {
|
||||||
conn.WriteInt(100)
|
conn.WriteInt(100)
|
||||||
case "bulk":
|
case "bulk":
|
||||||
conn.WriteBulk("bulk")
|
conn.WriteBulk("bulk")
|
||||||
|
case "bulkbytes":
|
||||||
|
conn.WriteBulkBytes([]byte("bulkbytes"))
|
||||||
case "null":
|
case "null":
|
||||||
conn.WriteNull()
|
conn.WriteNull()
|
||||||
case "err":
|
case "err":
|
||||||
|
@ -263,6 +265,13 @@ func TestServer(t *testing.T) {
|
||||||
if res != "$4\r\nbulk\r\n" {
|
if res != "$4\r\nbulk\r\n" {
|
||||||
t.Fatal("expecting bulk, got '%v'", res)
|
t.Fatal("expecting bulk, got '%v'", res)
|
||||||
}
|
}
|
||||||
|
res, err = do("BULKBYTES\r\n")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if res != "$9\r\nbulkbytes\r\n" {
|
||||||
|
t.Fatal("expecting bulkbytes, got '%v'", res)
|
||||||
|
}
|
||||||
res, err = do("INT\r\n")
|
res, err = do("INT\r\n")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
|
Loading…
Reference in New Issue