From 0ccc1b8e9ccbc6f93f2f3fc3a952a3216beb1f09 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Tue, 4 Feb 2025 17:52:05 -0300 Subject: [PATCH] meaningless optimizations. --- envelopes.go | 19 ++++++++++++------- event.go | 2 +- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/envelopes.go b/envelopes.go index f197fb2..9b9a539 100644 --- a/envelopes.go +++ b/envelopes.go @@ -94,7 +94,9 @@ func (v EventEnvelope) MarshalJSON() ([]byte, error) { w := jwriter.Writer{NoEscapeHTML: true} w.RawString(`["EVENT",`) if v.SubscriptionID != nil { - w.RawString(`"` + *v.SubscriptionID + `",`) + w.RawString(`"`) + w.RawString(*v.SubscriptionID) + w.RawString(`",`) } v.Event.MarshalEasyJSON(&w) w.RawString(`]`) @@ -129,8 +131,9 @@ func (v *ReqEnvelope) UnmarshalJSON(data []byte) error { func (v ReqEnvelope) MarshalJSON() ([]byte, error) { w := jwriter.Writer{NoEscapeHTML: true} - w.RawString(`["REQ",`) - w.RawString(`"` + v.SubscriptionID + `"`) + w.RawString(`["REQ","`) + w.RawString(v.SubscriptionID) + w.RawString(`"`) for _, filter := range v.Filters { w.RawString(`,`) filter.MarshalEasyJSON(&w) @@ -192,8 +195,9 @@ func (v *CountEnvelope) UnmarshalJSON(data []byte) error { func (v CountEnvelope) MarshalJSON() ([]byte, error) { w := jwriter.Writer{NoEscapeHTML: true} - w.RawString(`["COUNT",`) - w.RawString(`"` + v.SubscriptionID + `"`) + w.RawString(`["COUNT","`) + w.RawString(v.SubscriptionID) + w.RawString(`"`) if v.Count != nil { w.RawString(`,{"count":`) w.RawString(strconv.FormatInt(*v.Count, 10)) @@ -355,8 +359,9 @@ func (v *OKEnvelope) UnmarshalJSON(data []byte) error { func (v OKEnvelope) MarshalJSON() ([]byte, error) { w := jwriter.Writer{NoEscapeHTML: true} - w.RawString(`["OK",`) - w.RawString(`"` + v.EventID + `",`) + w.RawString(`["OK","`) + w.RawString(v.EventID) + w.RawString(`",`) ok := "false" if v.OK { ok = "true" diff --git a/event.go b/event.go index 2dd9a97..869ce57 100644 --- a/event.go +++ b/event.go @@ -57,7 +57,7 @@ func (evt *Event) CheckID() bool { func (evt *Event) Serialize() []byte { // the serialization process is just putting everything into a JSON array // so the order is kept. See NIP-01 - dst := make([]byte, 0) + dst := make([]byte, 0, 100+len(evt.Content)+len(evt.Tags)*80) // the header portion is easy to serialize // [0,"pubkey",created_at,kind,[