in model/marshal_fastjson.go [484:577]
func (v *Transaction) MarshalFastJSON(w *fastjson.Writer) error {
var firstErr error
w.RawByte('{')
w.RawString("\"duration\":")
w.Float64(v.Duration)
w.RawString(",\"id\":")
if err := v.ID.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
w.RawString(",\"name\":")
w.String(v.Name)
w.RawString(",\"span_count\":")
if err := v.SpanCount.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
w.RawString(",\"timestamp\":")
if err := v.Timestamp.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
w.RawString(",\"trace_id\":")
if err := v.TraceID.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
w.RawString(",\"type\":")
w.String(v.Type)
if v.Context != nil {
w.RawString(",\"context\":")
if err := v.Context.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
if v.DroppedSpansStats != nil {
w.RawString(",\"dropped_spans_stats\":")
w.RawByte('[')
for i, v := range v.DroppedSpansStats {
if i != 0 {
w.RawByte(',')
}
if err := v.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
w.RawByte(']')
}
if v.FAAS != nil {
w.RawString(",\"faas\":")
if err := v.FAAS.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
if v.Links != nil {
w.RawString(",\"links\":")
w.RawByte('[')
for i, v := range v.Links {
if i != 0 {
w.RawByte(',')
}
if err := v.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
w.RawByte(']')
}
if v.OTel != nil {
w.RawString(",\"otel\":")
if err := v.OTel.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
if v.Outcome != "" {
w.RawString(",\"outcome\":")
w.String(v.Outcome)
}
if !v.ParentID.isZero() {
w.RawString(",\"parent_id\":")
if err := v.ParentID.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
if v.Result != "" {
w.RawString(",\"result\":")
w.String(v.Result)
}
if v.SampleRate != nil {
w.RawString(",\"sample_rate\":")
w.Float64(*v.SampleRate)
}
if v.Sampled != nil {
w.RawString(",\"sampled\":")
w.Bool(*v.Sampled)
}
w.RawByte('}')
return firstErr
}