Files
atom/providers/uuid/uuid.go
2023-04-28 14:17:44 +08:00

35 lines
634 B
Go

package uuid
import (
"github.com/rogeecn/atom/container"
"github.com/rogeecn/atom/utils/opt"
"github.com/gofrs/uuid"
)
type Generator struct {
generator uuid.Generator
}
func Provide(opts ...opt.Option) error {
o := opt.New(opts...)
return container.Container.Provide(func() (*Generator, error) {
return &Generator{
generator: uuid.DefaultGenerator,
}, nil
}, o.DiOptions()...)
}
func (u *Generator) MustGenerate() string {
uuid, _ := u.Generate()
return uuid
}
func (u *Generator) Generate() (string, error) {
uuid, err := u.generator.NewV4()
if err != nil {
return "", err
}
return uuid.String(), err
}