Skip to content

Commit 2aea5ad

Browse files
committed
example: add empty slice examples
1 parent 84e352c commit 2aea5ad

File tree

10 files changed

+289
-0
lines changed

10 files changed

+289
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package main
2+
3+
import (
4+
"bytes"
5+
"fmt"
6+
7+
"github.com/yomorun/y3-codec-golang"
8+
)
9+
10+
// Example of encoding and decoding bool slice type, value is nil.
11+
func main() {
12+
// Simulate source to generate and send data
13+
var data []bool
14+
sendingBuf, _ := y3.NewCodec(0x10).Marshal(data)
15+
source := y3.FromStream(bytes.NewReader(sendingBuf))
16+
// Simulate flow listening and decoding data
17+
var decode = func(v []byte) (interface{}, error) {
18+
sl, err := y3.ToBoolSlice(v)
19+
if err != nil {
20+
return nil, err
21+
}
22+
fmt.Printf("encoded slice len: %v\n", len(sl))
23+
return sl, nil
24+
}
25+
consumer := source.Subscribe(0x10).OnObserve(decode)
26+
for range consumer {
27+
}
28+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package main
2+
3+
import (
4+
"bytes"
5+
"fmt"
6+
7+
"github.com/yomorun/y3-codec-golang"
8+
)
9+
10+
// Example of encoding and decoding string []byte type, value is nil.
11+
func main() {
12+
// Simulate source to generate and send data
13+
var data []byte
14+
sendingBuf, _ := y3.NewCodec(0x10).Marshal(data)
15+
//fmt.Printf("sendingBuf=%#v\n", sendingBuf)
16+
source := y3.FromStream(bytes.NewReader(sendingBuf))
17+
// Simulate flow listening and decoding data
18+
var decode = func(v []byte) (interface{}, error) {
19+
sl, err := y3.ToBytes(v)
20+
if err != nil {
21+
return nil, err
22+
}
23+
fmt.Printf("encoded slice len: %v\n", len(sl))
24+
return sl, nil
25+
}
26+
consumer := source.Subscribe(0x10).OnObserve(decode)
27+
for range consumer {
28+
}
29+
30+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package main
2+
3+
import (
4+
"bytes"
5+
"fmt"
6+
7+
"github.com/yomorun/y3-codec-golang"
8+
)
9+
10+
// Example of encoding and decoding float32 slice type, value is nil.
11+
func main() {
12+
// Simulate source to generate and send data
13+
var data []float32
14+
sendingBuf, _ := y3.NewCodec(0x10).Marshal(data)
15+
source := y3.FromStream(bytes.NewReader(sendingBuf))
16+
// Simulate flow listening and decoding data
17+
var decode = func(v []byte) (interface{}, error) {
18+
sl, err := y3.ToFloat32Slice(v)
19+
if err != nil {
20+
return nil, err
21+
}
22+
fmt.Printf("encoded slice len: %v\n", len(sl))
23+
return sl, nil
24+
}
25+
consumer := source.Subscribe(0x10).OnObserve(decode)
26+
for range consumer {
27+
}
28+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package main
2+
3+
import (
4+
"bytes"
5+
"fmt"
6+
7+
"github.com/yomorun/y3-codec-golang"
8+
)
9+
10+
// Example of encoding and decoding float64 slice type, value is nil.
11+
func main() {
12+
// Simulate source to generate and send data
13+
var data []float64
14+
sendingBuf, _ := y3.NewCodec(0x10).Marshal(data)
15+
source := y3.FromStream(bytes.NewReader(sendingBuf))
16+
// Simulate flow listening and decoding data
17+
var decode = func(v []byte) (interface{}, error) {
18+
sl, err := y3.ToFloat64Slice(v)
19+
if err != nil {
20+
return nil, err
21+
}
22+
fmt.Printf("encoded slice len: %v\n", len(sl))
23+
return sl, nil
24+
}
25+
consumer := source.Subscribe(0x10).OnObserve(decode)
26+
for range consumer {
27+
}
28+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package main
2+
3+
import (
4+
"bytes"
5+
"fmt"
6+
7+
"github.com/yomorun/y3-codec-golang"
8+
)
9+
10+
// Example of encoding and decoding int32 slice type, value is nil.
11+
func main() {
12+
// Simulate source to generate and send data
13+
var data []int32
14+
sendingBuf, _ := y3.NewCodec(0x10).Marshal(data)
15+
source := y3.FromStream(bytes.NewReader(sendingBuf))
16+
17+
// Simulate flow listening and decoding data
18+
var decode = func(v []byte) (interface{}, error) {
19+
sl, err := y3.ToInt32Slice(v)
20+
if err != nil {
21+
return nil, err
22+
}
23+
fmt.Printf("encoded slice len: %v\n", len(sl))
24+
return sl, nil
25+
}
26+
consumer := source.Subscribe(0x10).OnObserve(decode)
27+
for range consumer {
28+
}
29+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package main
2+
3+
import (
4+
"bytes"
5+
"fmt"
6+
7+
"github.com/yomorun/y3-codec-golang"
8+
)
9+
10+
// Example of encoding and decoding int64 slice type, value is nil.
11+
func main() {
12+
// Simulate source to generate and send data
13+
var data []int64
14+
sendingBuf, _ := y3.NewCodec(0x10).Marshal(data)
15+
source := y3.FromStream(bytes.NewReader(sendingBuf))
16+
// Simulate flow listening and decoding data
17+
var decode = func(v []byte) (interface{}, error) {
18+
sl, err := y3.ToInt64Slice(v)
19+
if err != nil {
20+
return nil, err
21+
}
22+
fmt.Printf("encoded slice len: %v\n", len(sl))
23+
return sl, nil
24+
}
25+
consumer := source.Subscribe(0x10).OnObserve(decode)
26+
for range consumer {
27+
}
28+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package main
2+
3+
import (
4+
"bytes"
5+
"fmt"
6+
7+
"github.com/yomorun/y3-codec-golang"
8+
)
9+
10+
// Example of encoding and decoding string slice type, value is nil.
11+
func main() {
12+
// Simulate source to generate and send data
13+
var data []string
14+
sendingBuf, _ := y3.NewCodec(0x10).Marshal(data)
15+
source := y3.FromStream(bytes.NewReader(sendingBuf))
16+
// Simulate flow listening and decoding data
17+
var decode = func(v []byte) (interface{}, error) {
18+
sl, err := y3.ToUTF8StringSlice(v)
19+
if err != nil {
20+
return nil, err
21+
}
22+
fmt.Printf("encoded slice len: %v\n", len(sl))
23+
return sl, nil
24+
}
25+
consumer := source.Subscribe(0x10).OnObserve(decode)
26+
for range consumer {
27+
}
28+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package main
2+
3+
import (
4+
"bytes"
5+
"fmt"
6+
7+
"github.com/yomorun/y3-codec-golang"
8+
)
9+
10+
func main() {
11+
// Simulate source to generate and send data, value is nil.
12+
var data []NoiseData
13+
sendingBuf, _ := y3.NewCodec(0x10).Marshal(data)
14+
source := y3.FromStream(bytes.NewReader(sendingBuf))
15+
16+
// Simulate flow listening and decoding data
17+
var decode = func(v []byte) (interface{}, error) {
18+
var sl []NoiseData
19+
err := y3.ToObject(v, &sl)
20+
if err != nil {
21+
return nil, err
22+
}
23+
fmt.Printf("encoded slice len: %v\n", len(sl))
24+
return sl, nil
25+
}
26+
consumer := source.Subscribe(0x10).OnObserve(decode)
27+
for range consumer {
28+
}
29+
}
30+
31+
type NoiseData struct {
32+
Noise float32 `y3:"0x11"`
33+
Other []int64 `y3:"0x12"`
34+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package main
2+
3+
import (
4+
"bytes"
5+
"fmt"
6+
7+
"github.com/yomorun/y3-codec-golang"
8+
)
9+
10+
// Example of encoding and decoding uint32 slice type, value is nil.
11+
func main() {
12+
// Simulate source to generate and send data
13+
var data []uint32
14+
sendingBuf, _ := y3.NewCodec(0x10).Marshal(data)
15+
source := y3.FromStream(bytes.NewReader(sendingBuf))
16+
// Simulate flow listening and decoding data
17+
var decode = func(v []byte) (interface{}, error) {
18+
sl, err := y3.ToUInt32Slice(v)
19+
if err != nil {
20+
return nil, err
21+
}
22+
fmt.Printf("encoded slice len: %v\n", len(sl))
23+
return sl, nil
24+
}
25+
consumer := source.Subscribe(0x10).OnObserve(decode)
26+
for range consumer {
27+
}
28+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package main
2+
3+
import (
4+
"bytes"
5+
"fmt"
6+
7+
"github.com/yomorun/y3-codec-golang"
8+
)
9+
10+
// Example of encoding and decoding int64 slice type, value is nil.
11+
func main() {
12+
// Simulate source to generate and send data
13+
var data []uint64
14+
sendingBuf, _ := y3.NewCodec(0x10).Marshal(data)
15+
source := y3.FromStream(bytes.NewReader(sendingBuf))
16+
// Simulate flow listening and decoding data
17+
var decode = func(v []byte) (interface{}, error) {
18+
sl, err := y3.ToUInt64Slice(v)
19+
if err != nil {
20+
return nil, err
21+
}
22+
fmt.Printf("encoded slice len: %v\n", len(sl))
23+
return sl, nil
24+
}
25+
consumer := source.Subscribe(0x10).OnObserve(decode)
26+
for range consumer {
27+
}
28+
}

0 commit comments

Comments
 (0)