in model/modeljson/internal/marshal_fastjson.go [2572:2756]
func (v *Span) MarshalFastJSON(w *fastjson.Writer) error {
var firstErr error
w.RawByte('{')
first := true
if v.Action != "" {
const prefix = ",\"action\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
w.String(v.Action)
}
if v.Composite != nil {
const prefix = ",\"composite\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
if err := v.Composite.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
if v.DB != nil {
const prefix = ",\"db\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
if err := v.DB.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
if v.Destination != nil {
const prefix = ",\"destination\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
if err := v.Destination.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.Kind != "" {
const prefix = ",\"kind\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
w.String(v.Kind)
}
if v.Links != nil {
const prefix = ",\"links\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
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.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.RepresentativeCount != 0 {
const prefix = ",\"representative_count\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
w.Float64(v.RepresentativeCount)
}
if !v.SelfTime.isZero() {
const prefix = ",\"self_time\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
if err := v.SelfTime.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
if v.Stacktrace != nil {
const prefix = ",\"stacktrace\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
w.RawByte('[')
for i, v := range v.Stacktrace {
if i != 0 {
w.RawByte(',')
}
if err := v.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
w.RawByte(']')
}
if v.Subtype != "" {
const prefix = ",\"subtype\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
w.String(v.Subtype)
}
if v.Sync != nil {
const prefix = ",\"sync\":"
if first {
first = false
w.RawString(prefix[1:])
} else {
w.RawString(prefix)
}
w.Bool(*v.Sync)
}
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
}