in model/modeljson/internal/marshal_fastjson.go [3335:3557]
func (v *Transaction) MarshalFastJSON(w *fastjson.Writer) error {
var firstErr error
w.RawByte('{')
first := true
if v.Custom != nil {
const prefix = ",\"custom\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
if err := v.Custom.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
if v.DroppedSpansStats != nil {
const prefix = ",\"dropped_spans_stats\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
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.DurationHistogram.isZero() {
const prefix = ",\"duration.histogram\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
if err := v.DurationHistogram.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
if !v.DurationSummary.isZero() {
const prefix = ",\"duration.summary\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
if err := v.DurationSummary.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
if v.UserExperience != nil {
const prefix = ",\"experience\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
if err := v.UserExperience.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
if v.ID != "" {
const prefix = ",\"id\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
w.String(v.ID)
}
if v.Marks != nil {
const prefix = ",\"marks\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
w.RawByte('{')
{
first := true
for k, v := range v.Marks {
if first {
first = false
} else {
w.RawByte(',')
}
w.String(k)
w.RawByte(':')
w.RawByte('{')
{
first := true
for k, v := range v {
if first {
first = false
} else {
w.RawByte(',')
}
w.String(k)
w.RawByte(':')
w.Float64(v)
}
}
w.RawByte('}')
}
}
w.RawByte('}')
}
if v.Message != nil {
const prefix = ",\"message\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
if err := v.Message.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
if v.Name != "" {
const prefix = ",\"name\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
w.String(v.Name)
}
if v.ProfilerStackTraceIds != nil {
const prefix = ",\"profiler_stack_trace_ids\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
w.RawByte('[')
for i, v := range v.ProfilerStackTraceIds {
if i != 0 {
w.RawByte(',')
}
w.String(v)
}
w.RawByte(']')
}
if v.RepresentativeCount != 0 {
const prefix = ",\"representative_count\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
w.Float64(v.RepresentativeCount)
}
if v.Result != "" {
const prefix = ",\"result\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
w.String(v.Result)
}
if v.Root != false {
const prefix = ",\"root\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
w.Bool(v.Root)
}
if v.Sampled != false {
const prefix = ",\"sampled\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
w.Bool(v.Sampled)
}
if !v.SpanCount.isZero() {
const prefix = ",\"span_count\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
if err := v.SpanCount.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
if v.Type != "" {
const prefix = ",\"type\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
w.String(v.Type)
}
w.RawByte('}')
return firstErr
}