package addrutil import ( ma "github.com/multiformats/go-multiaddr" ) // SubtractFilter returns a filter func that filters all of the given addresses func SubtractFilter(addrs ...ma.Multiaddr) func(ma.Multiaddr) bool { addrmap := make(map[string]bool, len(addrs)) for _, a := range addrs { addrmap[string(a.Bytes())] = true } return func(a ma.Multiaddr) bool { return !addrmap[string(a.Bytes())] } } // FilterNeg returns a negated version of the passed in filter func FilterNeg(f func(ma.Multiaddr) bool) func(ma.Multiaddr) bool { return func(a ma.Multiaddr) bool { return !f(a) } }