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

Method Write

go/fory/set.go:110–129  ·  view source on GitHub ↗
(ctx *WriteContext, refMode RefMode, writeType bool, hasGenerics bool, value reflect.Value)

Source from the content-addressed store, hash-verified

108}
109
110func (s setSerializer) Write(ctx *WriteContext, refMode RefMode, writeType bool, hasGenerics bool, value reflect.Value) {
111 if refMode != RefModeNone {
112 if value.IsNil() {
113 ctx.buffer.WriteInt8(NullFlag)
114 return
115 }
116 refWritten, err := ctx.RefResolver().WriteRefOrNull(ctx.buffer, value)
117 if err != nil {
118 ctx.SetError(FromError(err))
119 return
120 }
121 if refWritten {
122 return
123 }
124 }
125 if writeType {
126 ctx.buffer.WriteUint8(uint8(SET))
127 }
128 s.writeDataWithGenerics(ctx, value, hasGenerics || s.hasGenerics)
129}
130
131// writeHeader prepares and writes collection metadata including:
132// - Collection size

Callers

nothing calls this directly

Calls 8

writeDataWithGenericsMethod · 0.95
FromErrorFunction · 0.85
WriteRefOrNullMethod · 0.80
WriteUint8Method · 0.80
uint8Function · 0.50
WriteInt8Method · 0.45
RefResolverMethod · 0.45
SetErrorMethod · 0.45

Tested by

no test coverage detected