generate easyjson for Event struct

This commit is contained in:
Jay
2026-05-08 09:41:45 -04:00
parent 48dde86abd
commit 047fc9d9a1
4 changed files with 221 additions and 0 deletions
+1
View File
@@ -14,6 +14,7 @@ type Tag []string
// Event represents a Nostr protocol event, with its seven required fields.
// All fields must be present for a valid event.
//easyjson:json
type Event struct {
ID string `json:"id"`
PubKey string `json:"pubkey"`
+214
View File
@@ -0,0 +1,214 @@
// Code generated by easyjson for marshaling/unmarshaling. DO NOT EDIT.
package events
import (
json "encoding/json"
easyjson "github.com/mailru/easyjson"
jlexer "github.com/mailru/easyjson/jlexer"
jwriter "github.com/mailru/easyjson/jwriter"
)
// suppress unused package warning
var (
_ *json.RawMessage
_ *jlexer.Lexer
_ *jwriter.Writer
_ easyjson.Marshaler
)
func easyjsonF642ad3eDecodeGitWisehodlDevJayGoRootsEvents(in *jlexer.Lexer, out *Event) {
isTopLevel := in.IsStart()
if in.IsNull() {
if isTopLevel {
in.Consumed()
}
in.Skip()
return
}
in.Delim('{')
for !in.IsDelim('}') {
key := in.UnsafeFieldName(false)
in.WantColon()
switch key {
case "id":
if in.IsNull() {
in.Skip()
} else {
out.ID = string(in.String())
}
case "pubkey":
if in.IsNull() {
in.Skip()
} else {
out.PubKey = string(in.String())
}
case "created_at":
if in.IsNull() {
in.Skip()
} else {
out.CreatedAt = int64(in.Int64())
}
case "kind":
if in.IsNull() {
in.Skip()
} else {
out.Kind = int(in.Int())
}
case "tags":
if in.IsNull() {
in.Skip()
out.Tags = nil
} else {
in.Delim('[')
if out.Tags == nil {
if !in.IsDelim(']') {
out.Tags = make([]Tag, 0, 2)
} else {
out.Tags = []Tag{}
}
} else {
out.Tags = (out.Tags)[:0]
}
for !in.IsDelim(']') {
var v1 Tag
if in.IsNull() {
in.Skip()
v1 = nil
} else {
in.Delim('[')
if v1 == nil {
if !in.IsDelim(']') {
v1 = make(Tag, 0, 4)
} else {
v1 = Tag{}
}
} else {
v1 = (v1)[:0]
}
for !in.IsDelim(']') {
var v2 string
if in.IsNull() {
in.Skip()
} else {
v2 = string(in.String())
}
v1 = append(v1, v2)
in.WantComma()
}
in.Delim(']')
}
out.Tags = append(out.Tags, v1)
in.WantComma()
}
in.Delim(']')
}
case "content":
if in.IsNull() {
in.Skip()
} else {
out.Content = string(in.String())
}
case "sig":
if in.IsNull() {
in.Skip()
} else {
out.Sig = string(in.String())
}
default:
in.SkipRecursive()
}
in.WantComma()
}
in.Delim('}')
if isTopLevel {
in.Consumed()
}
}
func easyjsonF642ad3eEncodeGitWisehodlDevJayGoRootsEvents(out *jwriter.Writer, in Event) {
out.RawByte('{')
first := true
_ = first
{
const prefix string = ",\"id\":"
out.RawString(prefix[1:])
out.String(string(in.ID))
}
{
const prefix string = ",\"pubkey\":"
out.RawString(prefix)
out.String(string(in.PubKey))
}
{
const prefix string = ",\"created_at\":"
out.RawString(prefix)
out.Int64(int64(in.CreatedAt))
}
{
const prefix string = ",\"kind\":"
out.RawString(prefix)
out.Int(int(in.Kind))
}
{
const prefix string = ",\"tags\":"
out.RawString(prefix)
if in.Tags == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
out.RawString("null")
} else {
out.RawByte('[')
for v3, v4 := range in.Tags {
if v3 > 0 {
out.RawByte(',')
}
if v4 == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
out.RawString("null")
} else {
out.RawByte('[')
for v5, v6 := range v4 {
if v5 > 0 {
out.RawByte(',')
}
out.String(string(v6))
}
out.RawByte(']')
}
}
out.RawByte(']')
}
}
{
const prefix string = ",\"content\":"
out.RawString(prefix)
out.String(string(in.Content))
}
{
const prefix string = ",\"sig\":"
out.RawString(prefix)
out.String(string(in.Sig))
}
out.RawByte('}')
}
// MarshalJSON supports json.Marshaler interface
func (v Event) MarshalJSON() ([]byte, error) {
w := jwriter.Writer{}
easyjsonF642ad3eEncodeGitWisehodlDevJayGoRootsEvents(&w, v)
return w.Buffer.BuildBytes(), w.Error
}
// MarshalEasyJSON supports easyjson.Marshaler interface
func (v Event) MarshalEasyJSON(w *jwriter.Writer) {
easyjsonF642ad3eEncodeGitWisehodlDevJayGoRootsEvents(w, v)
}
// UnmarshalJSON supports json.Unmarshaler interface
func (v *Event) UnmarshalJSON(data []byte) error {
r := jlexer.Lexer{Data: data}
easyjsonF642ad3eDecodeGitWisehodlDevJayGoRootsEvents(&r, v)
return r.Error()
}
// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *Event) UnmarshalEasyJSON(l *jlexer.Lexer) {
easyjsonF642ad3eDecodeGitWisehodlDevJayGoRootsEvents(l, v)
}