MCPcopy Index your code
hub / github.com/vmihailenco/msgpack / ExampleDecoder_SetMapDecoder

Function ExampleDecoder_SetMapDecoder

example_test.go:50–92  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

48}
49
50func ExampleDecoder_SetMapDecoder() {
51 buf := new(bytes.Buffer)
52
53 enc := msgpack.NewEncoder(buf)
54 in := map[string]string{"hello": "world"}
55 err := enc.Encode(in)
56 if err != nil {
57 panic(err)
58 }
59
60 dec := msgpack.NewDecoder(buf)
61
62 // Causes decoder to produce map[string]string instead of map[string]interface{}.
63 dec.SetMapDecoder(func(d *msgpack.Decoder) (interface{}, error) {
64 n, err := d.DecodeMapLen()
65 if err != nil {
66 return nil, err
67 }
68
69 m := make(map[string]string, n)
70 for i := 0; i < n; i++ {
71 mk, err := d.DecodeString()
72 if err != nil {
73 return nil, err
74 }
75
76 mv, err := d.DecodeString()
77 if err != nil {
78 return nil, err
79 }
80
81 m[mk] = mv
82 }
83 return m, nil
84 })
85
86 out, err := dec.DecodeInterface()
87 if err != nil {
88 panic(err)
89 }
90 fmt.Printf("%#v", out)
91 // Output: map[string]string{"hello":"world"}
92}
93
94func ExampleDecoder_Query() {
95 b, err := msgpack.Marshal([]map[string]interface{}{

Callers

nothing calls this directly

Calls 5

EncodeMethod · 0.95
SetMapDecoderMethod · 0.95
DecodeInterfaceMethod · 0.95
DecodeMapLenMethod · 0.80
DecodeStringMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…