MCPcopy Create free account
hub / github.com/go-dev-frame/sponge / Marshal

Function Marshal

pkg/encoding/encoding.go:72–90  ·  view source on GitHub ↗

Marshal encode data

(e Encoding, v interface{})

Source from the content-addressed store, hash-verified

70
71// Marshal encode data
72func Marshal(e Encoding, v interface{}) (data []byte, err error) {
73 if !isPointer(v) {
74 return data, ErrNotAPointer
75 }
76 bm, ok := v.(encoding.BinaryMarshaler)
77 if ok && e == nil {
78 return bm.MarshalBinary()
79 }
80
81 data, err = e.Marshal(v)
82 if err == nil {
83 return data, err
84 }
85 if ok {
86 data, err = bm.MarshalBinary()
87 }
88
89 return data, err
90}
91
92// Unmarshal decode data
93func Unmarshal(e Encoding, data []byte, v interface{}) (err error) {

Callers 7

SetMethod · 0.92
MultiSetMethod · 0.92
SetMethod · 0.92
MultiSetMethod · 0.92
SetMethod · 0.92
xEncodingFunction · 0.85
TestMarshalFunction · 0.85

Calls 3

isPointerFunction · 0.85
MarshalBinaryMethod · 0.80
MarshalMethod · 0.65

Tested by 2

xEncodingFunction · 0.68
TestMarshalFunction · 0.68