package models import "slices" // topic model type Topic struct { Publish []string `json:"Publish,omitempty"` Subscribe []string `json:"subscribe,omitempty"` } func (t *Topic) AddSubscription(subs ...string) { for _, sub := range subs { if slices.Contains(t.Subscribe, sub) { continue } t.Subscribe = append(t.Subscribe, sub) slices.Sort(t.Subscribe) } } func (t *Topic) AddPublish(pubs ...string) { for _, pub := range pubs { if slices.Contains(t.Publish, pub) { continue } t.Subscribe = append(t.Publish, pub) slices.Sort(t.Publish) } }