(ctx *WriteContext, refMode RefMode, writeType bool, hasGenerics bool, value reflect.Value)
| 108 | } |
| 109 | |
| 110 | func (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 |
nothing calls this directly
no test coverage detected