Skip to content

Commit 2c65406

Browse files
committed
PutBool & PutBytes & PutUTF8String
1 parent 798becb commit 2c65406

File tree

2 files changed

+47
-5
lines changed

2 files changed

+47
-5
lines changed

v2.go

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,6 @@ func NewPacket(sid int) (*Packet, error) {
2626
return p, nil
2727
}
2828

29-
// // Length return the length of value
30-
// func (p *Packet) Length() int {
31-
// return p.length
32-
// }
33-
3429
func (p *Packet) setLengthBuffer() error {
3530
len := uint64(p.length)
3631
size := encoding.SizeOfPVarUInt64(len)
@@ -133,6 +128,27 @@ func (p *Packet) PutFloat64(v float64) error {
133128
return nil
134129
}
135130

131+
// PutBool set boolean value
132+
func (p *Packet) PutBool(v bool) error {
133+
var val uint64 = 0
134+
if v {
135+
val = 1
136+
}
137+
return p.PutUInt64(val)
138+
}
139+
140+
// PutUTF8String set string value
141+
func (p *Packet) PutUTF8String(v string) {
142+
p.valbuf = []byte(v)
143+
p.length = len(p.valbuf)
144+
}
145+
146+
// PutBytes set bytes value
147+
func (p *Packet) PutBytes(v []byte) {
148+
p.valbuf = v
149+
p.length = len(p.valbuf)
150+
}
151+
136152
// AddNode add a child Packet
137153
func (p *Packet) AddNode(child *Packet) (*Packet, error) {
138154
childBuffer, err := child.Encode()

v2_test.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,32 @@ func TestV2EncodeFloat64(t *testing.T) {
5858
testV2EncodeFloat64(t, 0x09, 0.01171875, []byte{0x09, 0x02, 0x3F, 0x88})
5959
}
6060

61+
func TestV2EncodeString(t *testing.T) {
62+
p, _ := NewPacket(0x01)
63+
p.PutUTF8String("C")
64+
compareBytes(t, p, []byte{0x01, 0x01, 0x43})
65+
p.PutUTF8String("CC")
66+
compareBytes(t, p, []byte{0x01, 0x02, 0x43, 0x43})
67+
p.PutUTF8String("Yona")
68+
compareBytes(t, p, []byte{0x01, 0x04, 0x59, 0x6F, 0x6E, 0x61})
69+
p.PutUTF8String("https://yomo.run")
70+
compareBytes(t, p, []byte{0x01, 0x10, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3A, 0x2F, 0x2F, 0x79, 0x6F, 0x6D, 0x6F, 0x2E, 0x72, 0x75, 0x6E})
71+
}
72+
73+
func TestV2EncodeBytes(t *testing.T) {
74+
p, _ := NewPacket(0x01)
75+
p.PutBytes([]byte{0x03, 0x06, 0x09, 0x0C, 0x0F})
76+
compareBytes(t, p, []byte{0x01, 0x05, 0x03, 0x06, 0x09, 0x0C, 0x0F})
77+
}
78+
79+
func TestV2EncodeBool(t *testing.T) {
80+
p, _ := NewPacket(0x01)
81+
p.PutBool(true)
82+
compareBytes(t, p, []byte{0x01, 0x01, 0x01})
83+
p.PutBool(false)
84+
compareBytes(t, p, []byte{0x01, 0x01, 0x00})
85+
}
86+
6187
func TestV2AddNode(t *testing.T) {
6288
parent, _ := NewPacket(0x01)
6389

0 commit comments

Comments
 (0)