func()

in model/marshal_fastjson.go [662:757]


func (v *Span) 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(",\"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.Action != "" {
		w.RawString(",\"action\":")
		w.String(v.Action)
	}
	if v.Composite != nil {
		w.RawString(",\"composite\":")
		if err := v.Composite.MarshalFastJSON(w); err != nil && firstErr == nil {
			firstErr = err
		}
	}
	if v.Context != nil {
		w.RawString(",\"context\":")
		if err := v.Context.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.SampleRate != nil {
		w.RawString(",\"sample_rate\":")
		w.Float64(*v.SampleRate)
	}
	if v.Stacktrace != nil {
		w.RawString(",\"stacktrace\":")
		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 != "" {
		w.RawString(",\"subtype\":")
		w.String(v.Subtype)
	}
	if !v.TransactionID.isZero() {
		w.RawString(",\"transaction_id\":")
		if err := v.TransactionID.MarshalFastJSON(w); err != nil && firstErr == nil {
			firstErr = err
		}
	}
	w.RawByte('}')
	return firstErr
}