(ctx *WriteContext, refMode RefMode, writeType bool)
| 201 | } |
| 202 | |
| 203 | func (s *optionalSerializer) writeNull(ctx *WriteContext, refMode RefMode, writeType bool) { |
| 204 | switch refMode { |
| 205 | case RefModeTracking, RefModeNullOnly: |
| 206 | ctx.Buffer().WriteInt8(NullFlag) |
| 207 | return |
| 208 | case RefModeNone: |
| 209 | // For RefModeNone, write zero value data without any flag. |
| 210 | zero := reflect.New(s.valueType).Elem() |
| 211 | if writeType { |
| 212 | info, err := ctx.TypeResolver().getTypeInfo(zero, true) |
| 213 | if err != nil { |
| 214 | ctx.SetError(FromError(err)) |
| 215 | return |
| 216 | } |
| 217 | ctx.TypeResolver().WriteTypeInfo(ctx.Buffer(), info, ctx.Err()) |
| 218 | } |
| 219 | s.valueSerializer.WriteData(ctx, zero) |
| 220 | } |
| 221 | } |
| 222 | |
| 223 | func (s *optionalSerializer) writeValue(ctx *WriteContext, refMode RefMode, writeType bool, valueField reflect.Value) { |
| 224 | switch refMode { |
no test coverage detected