package qlog import ( "time" "github.com/francoispqt/gojay" ) var eventFields = [4]string{"time", "category", "event", "data"} type events []event var _ gojay.MarshalerJSONArray = events{} func (e events) IsNil() bool { return e == nil } func (e events) MarshalJSONArray(enc *gojay.Encoder) { for _, ev := range e { enc.Array(ev) } } type eventDetails interface { Category() category Name() string gojay.MarshalerJSONObject } type event struct { Time time.Time eventDetails } var _ gojay.MarshalerJSONArray = event{} func (e event) IsNil() bool { return false } func (e event) MarshalJSONArray(enc *gojay.Encoder) { enc.Float64(float64(e.Time.UnixNano()) / 1e6) enc.String(e.Category().String()) enc.String(e.Name()) enc.Object(e.eventDetails) }