mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-09-13 20:04:38 +02:00
use bytes.Equal() instead of slices.Equal() on simdjson readers.
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
package nostr
|
package nostr
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"slices"
|
|
||||||
|
|
||||||
"github.com/minio/simdjson-go"
|
"github.com/minio/simdjson-go"
|
||||||
)
|
)
|
||||||
@@ -32,23 +32,23 @@ func (event *Event) UnmarshalSIMD(iter *simdjson.Iter) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch {
|
switch {
|
||||||
case slices.Equal(name, attrId):
|
case bytes.Equal(name, attrId):
|
||||||
event.ID, err = iter.String()
|
event.ID, err = iter.String()
|
||||||
case slices.Equal(name, attrPubkey):
|
case bytes.Equal(name, attrPubkey):
|
||||||
event.PubKey, err = iter.String()
|
event.PubKey, err = iter.String()
|
||||||
case slices.Equal(name, attrContent):
|
case bytes.Equal(name, attrContent):
|
||||||
event.Content, err = iter.String()
|
event.Content, err = iter.String()
|
||||||
case slices.Equal(name, attrSig):
|
case bytes.Equal(name, attrSig):
|
||||||
event.Sig, err = iter.String()
|
event.Sig, err = iter.String()
|
||||||
case slices.Equal(name, attrCreatedAt):
|
case bytes.Equal(name, attrCreatedAt):
|
||||||
var ts uint64
|
var ts uint64
|
||||||
ts, err = iter.Uint()
|
ts, err = iter.Uint()
|
||||||
event.CreatedAt = Timestamp(ts)
|
event.CreatedAt = Timestamp(ts)
|
||||||
case slices.Equal(name, attrKind):
|
case bytes.Equal(name, attrKind):
|
||||||
var kind uint64
|
var kind uint64
|
||||||
kind, err = iter.Uint()
|
kind, err = iter.Uint()
|
||||||
event.Kind = int(kind)
|
event.Kind = int(kind)
|
||||||
case slices.Equal(name, attrTags):
|
case bytes.Equal(name, attrTags):
|
||||||
var arr *simdjson.Array
|
var arr *simdjson.Array
|
||||||
arr, err = iter.Array(nil)
|
arr, err = iter.Array(nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
package nostr
|
package nostr
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"slices"
|
|
||||||
|
|
||||||
"github.com/minio/simdjson-go"
|
"github.com/minio/simdjson-go"
|
||||||
)
|
)
|
||||||
@@ -33,15 +33,15 @@ func (filter *Filter) UnmarshalSIMD(iter *simdjson.Iter) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch {
|
switch {
|
||||||
case slices.Equal(name, attrIds):
|
case bytes.Equal(name, attrIds):
|
||||||
if arr, err = iter.Array(arr); err == nil {
|
if arr, err = iter.Array(arr); err == nil {
|
||||||
filter.IDs, err = arr.AsString()
|
filter.IDs, err = arr.AsString()
|
||||||
}
|
}
|
||||||
case slices.Equal(name, attrAuthors):
|
case bytes.Equal(name, attrAuthors):
|
||||||
if arr, err = iter.Array(arr); err == nil {
|
if arr, err = iter.Array(arr); err == nil {
|
||||||
filter.Authors, err = arr.AsString()
|
filter.Authors, err = arr.AsString()
|
||||||
}
|
}
|
||||||
case slices.Equal(name, attrKinds):
|
case bytes.Equal(name, attrKinds):
|
||||||
if arr, err = iter.Array(arr); err == nil {
|
if arr, err = iter.Array(arr); err == nil {
|
||||||
i := arr.Iter()
|
i := arr.Iter()
|
||||||
filter.Kinds = make([]int, 0, 6)
|
filter.Kinds = make([]int, 0, 6)
|
||||||
@@ -57,19 +57,19 @@ func (filter *Filter) UnmarshalSIMD(iter *simdjson.Iter) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case slices.Equal(name, attrSearch):
|
case bytes.Equal(name, attrSearch):
|
||||||
filter.Search, err = iter.String()
|
filter.Search, err = iter.String()
|
||||||
case slices.Equal(name, attrSince):
|
case bytes.Equal(name, attrSince):
|
||||||
var tsu uint64
|
var tsu uint64
|
||||||
tsu, err = iter.Uint()
|
tsu, err = iter.Uint()
|
||||||
ts := Timestamp(tsu)
|
ts := Timestamp(tsu)
|
||||||
filter.Since = &ts
|
filter.Since = &ts
|
||||||
case slices.Equal(name, attrUntil):
|
case bytes.Equal(name, attrUntil):
|
||||||
var tsu uint64
|
var tsu uint64
|
||||||
tsu, err = iter.Uint()
|
tsu, err = iter.Uint()
|
||||||
ts := Timestamp(tsu)
|
ts := Timestamp(tsu)
|
||||||
filter.Until = &ts
|
filter.Until = &ts
|
||||||
case slices.Equal(name, attrLimit):
|
case bytes.Equal(name, attrLimit):
|
||||||
var limit uint64
|
var limit uint64
|
||||||
limit, err = iter.Uint()
|
limit, err = iter.Uint()
|
||||||
filter.Limit = int(limit)
|
filter.Limit = int(limit)
|
||||||
|
Reference in New Issue
Block a user