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

Function makeExtEncoder

ext.go:71–94  ·  view source on GitHub ↗
(
	extID int8,
	typ reflect.Type,
	encoder func(enc *Encoder, v reflect.Value) ([]byte, error),
)

Source from the content-addressed store, hash-verified

69}
70
71func makeExtEncoder(
72 extID int8,
73 typ reflect.Type,
74 encoder func(enc *Encoder, v reflect.Value) ([]byte, error),
75) encoderFunc {
76 nilable := typ.Kind() == reflect.Ptr
77
78 return func(e *Encoder, v reflect.Value) error {
79 if nilable && v.IsNil() {
80 return e.EncodeNil()
81 }
82
83 b, err := encoder(e, v)
84 if err != nil {
85 return err
86 }
87
88 if err := e.EncodeExtHeader(extID, len(b)); err != nil {
89 return err
90 }
91
92 return e.write(b)
93 }
94}
95
96func makeExtEncoderAddr(extEncoder encoderFunc) encoderFunc {
97 return func(e *Encoder, v reflect.Value) error {

Callers 1

RegisterExtEncoderFunction · 0.85

Calls 3

EncodeNilMethod · 0.80
EncodeExtHeaderMethod · 0.80
writeMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…