model/marshal_fastjson.go (1,683 lines of code) (raw):

// Licensed to Elasticsearch B.V. under one or more contributor // license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright // ownership. Elasticsearch B.V. licenses this file to you under // the Apache License, Version 2.0 (the "License"); you may // not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. // Code generated by "generate-fastjson". DO NOT EDIT. package model import ( "go.elastic.co/fastjson" ) func (v *Service) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') first := true if v.Agent != nil { const prefix = ",\"agent\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Agent.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.Environment != "" { const prefix = ",\"environment\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Environment) } if v.Framework != nil { const prefix = ",\"framework\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Framework.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.Language != nil { const prefix = ",\"language\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Language.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.Node != nil { const prefix = ",\"node\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Node.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.Runtime != nil { const prefix = ",\"runtime\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Runtime.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.Version != "" { const prefix = ",\"version\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Version) } w.RawByte('}') return firstErr } func (v *Agent) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') w.RawString("\"name\":") w.String(v.Name) w.RawString(",\"version\":") w.String(v.Version) w.RawByte('}') return nil } func (v *Framework) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') w.RawString("\"name\":") w.String(v.Name) w.RawString(",\"version\":") w.String(v.Version) w.RawByte('}') return nil } func (v *Language) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') w.RawString("\"name\":") w.String(v.Name) if v.Version != "" { w.RawString(",\"version\":") w.String(v.Version) } w.RawByte('}') return nil } func (v *Runtime) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') w.RawString("\"name\":") w.String(v.Name) w.RawString(",\"version\":") w.String(v.Version) w.RawByte('}') return nil } func (v *ServiceNode) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') if v.ConfiguredName != "" { w.RawString("\"configured_name\":") w.String(v.ConfiguredName) } w.RawByte('}') return nil } func (v *System) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') first := true if v.Architecture != "" { const prefix = ",\"architecture\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Architecture) } if v.Container != nil { const prefix = ",\"container\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Container.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.Hostname != "" { const prefix = ",\"hostname\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Hostname) } if v.Kubernetes != nil { const prefix = ",\"kubernetes\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Kubernetes.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.Platform != "" { const prefix = ",\"platform\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Platform) } w.RawByte('}') return firstErr } func (v *Process) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') w.RawString("\"pid\":") w.Int64(int64(v.Pid)) if v.Argv != nil { w.RawString(",\"argv\":") w.RawByte('[') for i, v := range v.Argv { if i != 0 { w.RawByte(',') } w.String(v) } w.RawByte(']') } if v.Ppid != nil { w.RawString(",\"ppid\":") w.Int64(int64(*v.Ppid)) } if v.Title != "" { w.RawString(",\"title\":") w.String(v.Title) } w.RawByte('}') return nil } func (v *Container) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') w.RawString("\"id\":") w.String(v.ID) w.RawByte('}') return nil } func (v *Kubernetes) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') first := true if v.Namespace != "" { const prefix = ",\"namespace\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Namespace) } if v.Node != nil { const prefix = ",\"node\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Node.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.Pod != nil { const prefix = ",\"pod\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Pod.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } w.RawByte('}') return firstErr } func (v *KubernetesNode) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') if v.Name != "" { w.RawString("\"name\":") w.String(v.Name) } w.RawByte('}') return nil } func (v *KubernetesPod) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') first := true if v.Name != "" { const prefix = ",\"name\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Name) } if v.UID != "" { const prefix = ",\"uid\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.UID) } w.RawByte('}') return nil } func (v *Cloud) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') w.RawString("\"provider\":") w.String(v.Provider) if v.Account != nil { w.RawString(",\"account\":") if err := v.Account.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.AvailabilityZone != "" { w.RawString(",\"availability_zone\":") w.String(v.AvailabilityZone) } if v.Instance != nil { w.RawString(",\"instance\":") if err := v.Instance.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.Machine != nil { w.RawString(",\"machine\":") if err := v.Machine.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.Project != nil { w.RawString(",\"project\":") if err := v.Project.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.Region != "" { w.RawString(",\"region\":") w.String(v.Region) } w.RawByte('}') return firstErr } func (v *CloudInstance) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') first := true if v.ID != "" { const prefix = ",\"id\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.ID) } if v.Name != "" { const prefix = ",\"name\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Name) } w.RawByte('}') return nil } func (v *CloudMachine) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') if v.Type != "" { w.RawString("\"type\":") w.String(v.Type) } w.RawByte('}') return nil } func (v *CloudAccount) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') first := true if v.ID != "" { const prefix = ",\"id\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.ID) } if v.Name != "" { const prefix = ",\"name\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Name) } w.RawByte('}') return nil } func (v *CloudProject) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') first := true if v.ID != "" { const prefix = ",\"id\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.ID) } if v.Name != "" { const prefix = ",\"name\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Name) } w.RawByte('}') return nil } func (v *Transaction) 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(",\"span_count\":") if err := v.SpanCount.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } 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.Context != nil { w.RawString(",\"context\":") if err := v.Context.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.DroppedSpansStats != nil { w.RawString(",\"dropped_spans_stats\":") 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.FAAS != nil { w.RawString(",\"faas\":") if err := v.FAAS.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.Result != "" { w.RawString(",\"result\":") w.String(v.Result) } if v.SampleRate != nil { w.RawString(",\"sample_rate\":") w.Float64(*v.SampleRate) } if v.Sampled != nil { w.RawString(",\"sampled\":") w.Bool(*v.Sampled) } w.RawByte('}') return firstErr } func (v *OTel) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') w.RawString("\"span_kind\":") w.String(v.SpanKind) 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('}') } w.RawByte('}') return firstErr } func (v *SpanCount) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') w.RawString("\"dropped\":") w.Int64(int64(v.Dropped)) w.RawString(",\"started\":") w.Int64(int64(v.Started)) w.RawByte('}') return nil } func (v *DroppedSpansStats) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') w.RawString("\"destination_service_resource\":") w.String(v.DestinationServiceResource) w.RawString(",\"duration\":") if err := v.Duration.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } w.RawString(",\"outcome\":") w.String(v.Outcome) if v.ServiceTargetName != "" { w.RawString(",\"service_target_name\":") w.String(v.ServiceTargetName) } if v.ServiceTargetType != "" { w.RawString(",\"service_target_type\":") w.String(v.ServiceTargetType) } w.RawByte('}') return firstErr } func (v *AggregateDuration) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') w.RawString("\"count\":") w.Int64(int64(v.Count)) w.RawString(",\"sum\":") if err := v.Sum.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } w.RawByte('}') return firstErr } func (v *DurationSum) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') w.RawString("\"us\":") w.Int64(v.Us) w.RawByte('}') return nil } 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 } func (v *SpanContext) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') first := true if v.Database != nil { const prefix = ",\"db\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Database.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.HTTP != nil { const prefix = ",\"http\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.HTTP.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } 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.Service != nil { const prefix = ",\"service\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Service.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if !v.Tags.isZero() { const prefix = ",\"tags\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Tags.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } w.RawByte('}') return firstErr } func (v *SpanLink) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') w.RawString("\"span_id\":") if err := v.SpanID.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.RawByte('}') return firstErr } func (v *DestinationSpanContext) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') first := true if v.Address != "" { const prefix = ",\"address\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Address) } if v.Cloud != nil { const prefix = ",\"cloud\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Cloud.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.Port != 0 { const prefix = ",\"port\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.Int64(int64(v.Port)) } if v.Service != nil { const prefix = ",\"service\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Service.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } w.RawByte('}') return firstErr } func (v *ServiceSpanContext) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') if v.Target != nil { w.RawString("\"target\":") if err := v.Target.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } w.RawByte('}') return firstErr } func (v *ServiceTargetSpanContext) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') w.RawString("\"type\":") w.String(v.Type) if v.Name != "" { w.RawString(",\"name\":") w.String(v.Name) } w.RawByte('}') return nil } func (v *DestinationServiceSpanContext) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') w.RawString("\"name\":") w.String(v.Name) if v.Resource != "" { w.RawString(",\"resource\":") w.String(v.Resource) } if v.Type != "" { w.RawString(",\"type\":") w.String(v.Type) } w.RawByte('}') return nil } func (v *DestinationCloudSpanContext) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') if v.Region != "" { w.RawString("\"region\":") w.String(v.Region) } w.RawByte('}') return nil } func (v *MessageSpanContext) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') if v.Queue != nil { w.RawString("\"queue\":") if err := v.Queue.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } w.RawByte('}') return firstErr } func (v *MessageQueueSpanContext) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') if v.Name != "" { w.RawString("\"name\":") w.String(v.Name) } w.RawByte('}') return nil } func (v *DatabaseSpanContext) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') first := true if v.Instance != "" { const prefix = ",\"instance\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Instance) } if v.RowsAffected != nil { const prefix = ",\"rows_affected\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.Int64(*v.RowsAffected) } if v.Statement != "" { const prefix = ",\"statement\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Statement) } if v.Type != "" { const prefix = ",\"type\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Type) } if v.User != "" { const prefix = ",\"user\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.User) } w.RawByte('}') return nil } func (v *CompositeSpan) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') w.RawString("\"compression_strategy\":") w.String(v.CompressionStrategy) w.RawString(",\"count\":") w.Int64(int64(v.Count)) w.RawString(",\"sum\":") w.Float64(v.Sum) w.RawByte('}') return nil } func (v *Context) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') first := true if !v.Custom.isZero() { 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.Request != nil { const prefix = ",\"request\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Request.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.Response != nil { const prefix = ",\"response\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Response.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.Service != nil { const prefix = ",\"service\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Service.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if !v.Tags.isZero() { const prefix = ",\"tags\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Tags.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.User != nil { const prefix = ",\"user\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.User.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } w.RawByte('}') return firstErr } func (v *User) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') first := true if v.Email != "" { const prefix = ",\"email\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Email) } if v.ID != "" { const prefix = ",\"id\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.ID) } if v.Username != "" { const prefix = ",\"username\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Username) } w.RawByte('}') return nil } func (v *Error) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') w.RawString("\"id\":") if err := v.ID.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } w.RawString(",\"timestamp\":") if err := v.Timestamp.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.Culprit != "" { w.RawString(",\"culprit\":") w.String(v.Culprit) } if !v.Exception.isZero() { w.RawString(",\"exception\":") if err := v.Exception.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if !v.Log.isZero() { w.RawString(",\"log\":") if err := v.Log.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if !v.ParentID.isZero() { w.RawString(",\"parent_id\":") if err := v.ParentID.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if !v.TraceID.isZero() { w.RawString(",\"trace_id\":") if err := v.TraceID.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if !v.Transaction.isZero() { w.RawString(",\"transaction\":") if err := v.Transaction.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if !v.TransactionID.isZero() { w.RawString(",\"transaction_id\":") if err := v.TransactionID.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } w.RawByte('}') return firstErr } func (v *ErrorTransaction) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') first := true if v.Name != "" { const prefix = ",\"name\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Name) } if v.Sampled != nil { const prefix = ",\"sampled\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.Bool(*v.Sampled) } 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 nil } 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 } 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 } func (v *Log) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') w.RawString("\"message\":") w.String(v.Message) if v.Level != "" { w.RawString(",\"level\":") w.String(v.Level) } if v.LoggerName != "" { w.RawString(",\"logger_name\":") w.String(v.LoggerName) } if v.ParamMessage != "" { w.RawString(",\"param_message\":") w.String(v.ParamMessage) } 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(']') } w.RawByte('}') return firstErr } func (v *Request) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') w.RawString("\"method\":") w.String(v.Method) w.RawString(",\"url\":") if err := v.URL.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } if v.Body != nil { w.RawString(",\"body\":") if err := v.Body.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if !v.Cookies.isZero() { w.RawString(",\"cookies\":") if err := v.Cookies.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.Env != nil { w.RawString(",\"env\":") w.RawByte('{') { first := true for k, v := range v.Env { if first { first = false } else { w.RawByte(',') } w.String(k) w.RawByte(':') w.String(v) } } w.RawByte('}') } if !v.Headers.isZero() { w.RawString(",\"headers\":") if err := v.Headers.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.HTTPVersion != "" { w.RawString(",\"http_version\":") w.String(v.HTTPVersion) } if v.Socket != nil { w.RawString(",\"socket\":") if err := v.Socket.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } w.RawByte('}') return firstErr } func (v *RequestSocket) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') first := true if v.Encrypted != false { const prefix = ",\"encrypted\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.Bool(v.Encrypted) } if v.RemoteAddress != "" { const prefix = ",\"remote_address\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.RemoteAddress) } w.RawByte('}') return nil } func (v *Response) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') first := true if v.Finished != nil { const prefix = ",\"finished\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.Bool(*v.Finished) } if !v.Headers.isZero() { const prefix = ",\"headers\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } if err := v.Headers.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.HeadersSent != nil { const prefix = ",\"headers_sent\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.Bool(*v.HeadersSent) } if v.StatusCode != 0 { const prefix = ",\"status_code\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.Int64(int64(v.StatusCode)) } w.RawByte('}') return firstErr } func (v *Metrics) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') w.RawString("\"samples\":") if v.Samples == nil { w.RawString("null") } else { w.RawByte('{') { first := true for k, v := range v.Samples { if first { first = false } else { w.RawByte(',') } w.String(k) w.RawByte(':') if err := v.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } } w.RawByte('}') } w.RawString(",\"timestamp\":") if err := v.Timestamp.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } if v.FAAS != nil { w.RawString(",\"faas\":") if err := v.FAAS.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if !v.Span.isZero() { w.RawString(",\"span\":") if err := v.Span.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if !v.Labels.isZero() { w.RawString(",\"tags\":") if err := v.Labels.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if !v.Transaction.isZero() { w.RawString(",\"transaction\":") if err := v.Transaction.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } w.RawByte('}') return firstErr } func (v *MetricsTransaction) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') first := true if v.Name != "" { const prefix = ",\"name\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Name) } 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 nil } func (v *MetricsSpan) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') first := true if v.Subtype != "" { const prefix = ",\"subtype\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.Subtype) } 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 nil } func (v *FAAS) MarshalFastJSON(w *fastjson.Writer) error { var firstErr error w.RawByte('{') w.RawString("\"coldstart\":") w.Bool(v.Coldstart) if v.Execution != "" { w.RawString(",\"execution\":") w.String(v.Execution) } if v.ID != "" { w.RawString(",\"id\":") w.String(v.ID) } if v.Name != "" { w.RawString(",\"name\":") w.String(v.Name) } if v.Trigger != nil { w.RawString(",\"trigger\":") if err := v.Trigger.MarshalFastJSON(w); err != nil && firstErr == nil { firstErr = err } } if v.Version != "" { w.RawString(",\"version\":") w.String(v.Version) } w.RawByte('}') return firstErr } func (v *FAASTrigger) MarshalFastJSON(w *fastjson.Writer) error { w.RawByte('{') first := true if v.RequestID != "" { const prefix = ",\"request_id\":" if first { first = false w.RawString(prefix[1:]) } else { w.RawString(prefix) } w.String(v.RequestID) } 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 nil }