sid.go 453 B

123456789101112131415161718192021222324252627
  1. package sid
  2. import (
  3. "github.com/sony/sonyflake"
  4. )
  5. type Sid struct {
  6. sf *sonyflake.Sonyflake
  7. }
  8. func NewSid() *Sid {
  9. sf := sonyflake.NewSonyflake(sonyflake.Settings{})
  10. if sf == nil {
  11. panic("sonyflake not created")
  12. }
  13. return &Sid{sf}
  14. }
  15. func (s Sid) GenString() (string, error) {
  16. id, err := s.sf.NextID()
  17. if err != nil {
  18. return "", err
  19. }
  20. return IntToBase62(int(id)), nil
  21. }
  22. func (s Sid) GenUint64() (uint64, error) {
  23. return s.sf.NextID()
  24. }