Skip to content

Commit 7768f96

Browse files
add a Contains function (#172)
1 parent f901192 commit 7768f96

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

multiaddr.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,3 +200,13 @@ addrloop:
200200
}
201201
return b
202202
}
203+
204+
// Contains reports whether addr is contained in addrs.
205+
func Contains(addrs []Multiaddr, addr Multiaddr) bool {
206+
for _, a := range addrs {
207+
if addr.Equal(a) {
208+
return true
209+
}
210+
}
211+
return false
212+
}

multiaddr_test.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -762,3 +762,16 @@ func TestFilterAddrs(t *testing.T) {
762762
require.ElementsMatch(t, FilterAddrs(good, filter), good)
763763
require.ElementsMatch(t, FilterAddrs(goodAndBad, filter), good)
764764
}
765+
766+
func TestContains(t *testing.T) {
767+
a1 := newMultiaddr(t, "/ip4/127.0.0.1/tcp/1234")
768+
a2 := newMultiaddr(t, "/ip4/1.1.1.1/tcp/999")
769+
a3 := newMultiaddr(t, "/ip4/1.2.3.4/udp/443/quic")
770+
addrs := []Multiaddr{a1, a2, a3}
771+
772+
require.True(t, Contains(addrs, a1))
773+
require.True(t, Contains(addrs, a2))
774+
require.True(t, Contains(addrs, a3))
775+
require.False(t, Contains(addrs, newMultiaddr(t, "/ip4/4.3.2.1/udp/1234/utp")))
776+
require.False(t, Contains(nil, a1))
777+
}

0 commit comments

Comments
 (0)