/* Package registry is an expirmental package to facillitate altering the otto runtime via import. This interface can change at any time. */ package registry var registry []*Entry = make([]*Entry, 0) type Entry struct { active bool source func() string } func newEntry(source func() string) *Entry { return &Entry{ active: true, source: source, } } func (self *Entry) Enable() { self.active = true } func (self *Entry) Disable() { self.active = false } func (self Entry) Source() string { return self.source() } func Apply(callback func(Entry)) { for _, entry := range registry { if !entry.active { continue } callback(*entry) } } func Register(source func() string) *Entry { entry := newEntry(source) registry = append(registry, entry) return entry }