package shortify import ( "sync" "go.etcd.io/bbolt" ) // Global instance var ( Global *Shortener once sync.Once ) func Init(cfg Config) error { var err error once.Do(func() { Global, err = NewShortener(cfg) }) return err } // Global instance (duc) var ( GlobalIDPool *IDPool oncePopper sync.Once ) func InitIDPool(db *bbolt.DB, idLen, poolCap, regenThresh int) error { var err error oncePopper.Do(func() { GlobalIDPool, err = NewIDPool(db, idLen, poolCap, regenThresh) }) return err }