28 lines
453 B
Go
28 lines
453 B
Go
|
|
package sid
|
||
|
|
|
||
|
|
import (
|
||
|
|
"github.com/sony/sonyflake"
|
||
|
|
)
|
||
|
|
|
||
|
|
type Sid struct {
|
||
|
|
sf *sonyflake.Sonyflake
|
||
|
|
}
|
||
|
|
|
||
|
|
func NewSid() *Sid {
|
||
|
|
sf := sonyflake.NewSonyflake(sonyflake.Settings{})
|
||
|
|
if sf == nil {
|
||
|
|
panic("sonyflake not created")
|
||
|
|
}
|
||
|
|
return &Sid{sf}
|
||
|
|
}
|
||
|
|
func (s Sid) GenString() (string, error) {
|
||
|
|
id, err := s.sf.NextID()
|
||
|
|
if err != nil {
|
||
|
|
return "", err
|
||
|
|
}
|
||
|
|
return IntToBase62(int(id)), nil
|
||
|
|
}
|
||
|
|
func (s Sid) GenUint64() (uint64, error) {
|
||
|
|
return s.sf.NextID()
|
||
|
|
}
|