MCPcopy Create free account
hub / github.com/apache/fory / writeUnionDeclaredValue

Function writeUnionDeclaredValue

go/fory/union.go:374–387  ·  view source on GitHub ↗
(ctx *WriteContext, info *unionCaseInfo, value reflect.Value)

Source from the content-addressed store, hash-verified

372}
373
374func writeUnionDeclaredValue(ctx *WriteContext, info *unionCaseInfo, value reflect.Value) {
375 if !value.IsValid() {
376 ctx.Buffer().WriteInt8(NullFlag)
377 return
378 }
379 if value.Kind() == reflect.Interface {
380 if value.IsNil() {
381 ctx.Buffer().WriteInt8(NullFlag)
382 return
383 }
384 value = value.Elem()
385 }
386 info.serializer.Write(ctx, RefModeTracking, true, true, value)
387}
388
389func readUnionDeclaredValue(ctx *ReadContext, info *unionCaseInfo) (any, bool) {
390 value := reflect.New(info.type_).Elem()

Callers 1

WriteDataMethod · 0.85

Calls 4

KindMethod · 0.80
WriteMethod · 0.65
WriteInt8Method · 0.45
BufferMethod · 0.45

Tested by

no test coverage detected