package subscription import ( "slices" ) // List is a container of subscription pointers type List []*Subscription // Strings returns a sorted slice of subscriptions func (l List) Strings() []string { s := make([]string, len(l)) for i := range l { s[i] = l[i].String() } slices.Sort(s) return s } // GroupPairs groups subscriptions which are identical apart from the Pairs // The returned List contains cloned Subscriptions, and the original Subscriptions are left alone func (l List) GroupPairs() (n List) { s := NewStore() for _, sub := range l { if found := s.match(&IgnoringPairsKey{sub}); found == nil { s.unsafeAdd(sub.Clone()) } else { found.AddPairs(sub.Pairs...) } } return s.List() }