MCPcopy
hub / github.com/tinylib/msgp / rwExtension

Function rwExtension

msgp/json.go:301–370  ·  view source on GitHub ↗
(dst jsWriter, src *Reader)

Source from the content-addressed store, hash-verified

299}
300
301func rwExtension(dst jsWriter, src *Reader) (n int, err error) {
302 et, err := src.peekExtensionType()
303 if err != nil {
304 return 0, err
305 }
306
307 // registered extensions can override
308 // the JSON encoding
309 if j, ok := extensionReg[et]; ok {
310 var bts []byte
311 e := j()
312 err = src.ReadExtension(e)
313 if err != nil {
314 return
315 }
316 bts, err = json.Marshal(e)
317 if err != nil {
318 return
319 }
320 return dst.Write(bts)
321 }
322
323 e := RawExtension{}
324 e.Type = et
325 err = src.ReadExtension(&e)
326 if err != nil {
327 return
328 }
329
330 var nn int
331 err = dst.WriteByte('{')
332 if err != nil {
333 return
334 }
335 n++
336
337 nn, err = dst.WriteString(`"type":`)
338 n += nn
339 if err != nil {
340 return
341 }
342
343 src.scratch = strconv.AppendInt(src.scratch[0:0], int64(e.Type), 10)
344 nn, err = dst.Write(src.scratch)
345 n += nn
346 if err != nil {
347 return
348 }
349
350 nn, err = dst.WriteString(`,"data":"`)
351 n += nn
352 if err != nil {
353 return
354 }
355
356 enc := base64.NewEncoder(base64.StdEncoding, dst)
357
358 nn, err = enc.Write(e.Data)

Callers

nothing calls this directly

Calls 5

peekExtensionTypeMethod · 0.80
ReadExtensionMethod · 0.80
WriteByteMethod · 0.80
WriteStringMethod · 0.65
WriteMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…