in pkg/ui/model.go [82:105]
func (d *Document) AddSubscription(subscriber Subscriber) io.Closer {
d.mutex.Lock()
defer d.mutex.Unlock()
id := d.nextID
d.nextID++
s := &subscription{
doc: d,
id: id,
subscriber: subscriber,
}
newSubscriptions := make([]*subscription, 0, len(d.subscriptions)+1)
for _, s := range d.subscriptions {
if s == nil || s.subscriber == nil {
continue
}
newSubscriptions = append(newSubscriptions, s)
}
newSubscriptions = append(newSubscriptions, s)
d.subscriptions = newSubscriptions
return s
}