File tree 1 file changed +37
-0
lines changed
examples/high_level/struct_pointer
1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change
1
+ package main
2
+
3
+ import (
4
+ "bytes"
5
+ "fmt"
6
+ "time"
7
+
8
+ "github.com/yomorun/y3-codec-golang"
9
+ )
10
+
11
+ // Example of encoding and decoding struct type.
12
+ func main () {
13
+ // Simulate source to generate and send data
14
+ data := & NoiseData {Noise : 40 , Time : time .Now ().UnixNano () / 1e6 , From : "127.0.0.1" }
15
+ fmt .Printf ("encoded data: %v\n " , * data )
16
+ sendingBuf , _ := y3 .NewCodec (0x10 ).Marshal (data )
17
+ source := y3 .FromStream (bytes .NewReader (sendingBuf ))
18
+ // Simulate flow listening and decoding data
19
+ var decode = func (v []byte ) (interface {}, error ) {
20
+ var obj NoiseData
21
+ err := y3 .ToObject (v , & obj )
22
+ if err != nil {
23
+ return nil , err
24
+ }
25
+ return obj , nil
26
+ }
27
+ consumer := source .Subscribe (0x10 ).OnObserve (decode )
28
+ for item := range consumer {
29
+ fmt .Printf ("observed data: %v\n " , item )
30
+ }
31
+ }
32
+
33
+ type NoiseData struct {
34
+ Noise float32 `y3:"0x11"`
35
+ Time int64 `y3:"0x12"`
36
+ From string `y3:"0x13"`
37
+ }
You can’t perform that action at this time.
0 commit comments