in model/marshal_fastjson.go [1335:1414]
func (v *StacktraceFrame) MarshalFastJSON(w *fastjson.Writer) error {
var firstErr error
w.RawByte('{')
w.RawString("\"filename\":")
w.String(v.File)
w.RawString(",\"lineno\":")
w.Int64(int64(v.Line))
if v.AbsolutePath != "" {
w.RawString(",\"abs_path\":")
w.String(v.AbsolutePath)
}
if v.Classname != "" {
w.RawString(",\"classname\":")
w.String(v.Classname)
}
if v.Column != nil {
w.RawString(",\"colno\":")
w.Int64(int64(*v.Column))
}
if v.ContextLine != "" {
w.RawString(",\"context_line\":")
w.String(v.ContextLine)
}
if v.Function != "" {
w.RawString(",\"function\":")
w.String(v.Function)
}
if v.LibraryFrame != false {
w.RawString(",\"library_frame\":")
w.Bool(v.LibraryFrame)
}
if v.Module != "" {
w.RawString(",\"module\":")
w.String(v.Module)
}
if v.PostContext != nil {
w.RawString(",\"post_context\":")
w.RawByte('[')
for i, v := range v.PostContext {
if i != 0 {
w.RawByte(',')
}
w.String(v)
}
w.RawByte(']')
}
if v.PreContext != nil {
w.RawString(",\"pre_context\":")
w.RawByte('[')
for i, v := range v.PreContext {
if i != 0 {
w.RawByte(',')
}
w.String(v)
}
w.RawByte(']')
}
if v.Vars != nil {
w.RawString(",\"vars\":")
w.RawByte('{')
{
first := true
for k, v := range v.Vars {
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('}')
}
w.RawByte('}')
return firstErr
}