Files
ezbookkeeping/pkg/uuid/uuid_container.go
T
2021-04-12 01:21:34 +08:00

34 lines
849 B
Go

package uuid
import (
"github.com/mayswind/ezbookkeeping/pkg/errs"
"github.com/mayswind/ezbookkeeping/pkg/settings"
)
// UuidContainer contains the current uuid generator
type UuidContainer struct {
Current UuidGenerator
}
// Initialize a uuid container singleton instance
var (
Container = &UuidContainer{}
)
// InitializeUuidGenerator initializes the current uuid generator according to the config
func InitializeUuidGenerator(config *settings.Config) error {
if config.UuidGeneratorType == settings.InternalUuidGeneratorType {
generator, err := NewInternalUuidGenerator(config)
Container.Current = generator
return err
}
return errs.ErrInvalidUuidMode
}
// GenerateUuid returns a new uuid by the current uuid generator
func (u *UuidContainer) GenerateUuid(uuidType UuidType) int64 {
return u.Current.GenerateUuid(uuidType)
}