shortify/global.go
2025-08-06 10:23:12 +02:00

36 lines
513 B
Go

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
}