in model/marshal_fastjson.go [1264:1333]
func (v *Exception) MarshalFastJSON(w *fastjson.Writer) error {
var firstErr error
w.RawByte('{')
w.RawString("\"handled\":")
w.Bool(v.Handled)
w.RawString(",\"message\":")
w.String(v.Message)
if v.Attributes != nil {
w.RawString(",\"attributes\":")
w.RawByte('{')
{
first := true
for k, v := range v.Attributes {
if first {
first = false
} else {
w.RawByte(',')
}
w.String(k)
w.RawByte(':')
if err := fastjson.Marshal(w, v); err != nil && firstErr == nil {
firstErr = err
}
}
}
w.RawByte('}')
}
if v.Cause != nil {
w.RawString(",\"cause\":")
w.RawByte('[')
for i, v := range v.Cause {
if i != 0 {
w.RawByte(',')
}
if err := v.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
w.RawByte(']')
}
if !v.Code.isZero() {
w.RawString(",\"code\":")
if err := v.Code.MarshalFastJSON(w); err != nil && firstErr == nil {
firstErr = err
}
}
if v.Module != "" {
w.RawString(",\"module\":")
w.String(v.Module)
}
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.Type != "" {
w.RawString(",\"type\":")
w.String(v.Type)
}
w.RawByte('}')
return firstErr
}