mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-03-17 13:22:56 +01:00
I had forgotten to implement Tags.FindAll()
This commit is contained in:
parent
459273216c
commit
d430b8c9ed
@ -1,6 +1,7 @@
|
||||
package nostr
|
||||
|
||||
import (
|
||||
"slices"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
@ -18,7 +19,7 @@ func TestTagHelpers(t *testing.T) {
|
||||
assert.Nil(t, tags.Find("x"), "Find shouldn't have returned a tag with a single item")
|
||||
assert.NotNil(t, tags.FindWithValue("p", "abcdef"), "failed to get with existing prefix")
|
||||
assert.Equal(t, "ffffff", tags.FindLast("e")[1], "failed to get last")
|
||||
assert.Equal(t, 2, len(tags.GetAll([]string{"e", ""})), "failed to get all")
|
||||
assert.Equal(t, 2, len(slices.Collect(tags.FindAll("e"))), "failed to get all")
|
||||
c := make(Tags, 0, 2)
|
||||
for _, tag := range tags.All([]string{"e", ""}) {
|
||||
c = append(c, tag)
|
||||
|
13
tags.go
13
tags.go
@ -156,6 +156,19 @@ func (tags Tags) Find(key string) Tag {
|
||||
return nil
|
||||
}
|
||||
|
||||
// FindAll yields all the tags the given key/tagName that also have one value (i.e. at least 2 items)
|
||||
func (tags Tags) FindAll(key string) iter.Seq[Tag] {
|
||||
return func(yield func(Tag) bool) {
|
||||
for _, v := range tags {
|
||||
if len(v) >= 2 && v[0] == key {
|
||||
if !yield(v) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// FindWithValue is like Find, but also checks if the value (the second item) matches
|
||||
func (tags Tags) FindWithValue(key, value string) Tag {
|
||||
for _, v := range tags {
|
||||
|
Loading…
x
Reference in New Issue
Block a user