32 lines
564 B
Go
32 lines
564 B
Go
package utils
|
|
|
|
import (
|
|
"strconv"
|
|
|
|
"github.com/google/uuid"
|
|
"github.com/jaevor/go-nanoid"
|
|
ulid "github.com/oklog/ulid/v2"
|
|
)
|
|
|
|
func NanoID() string {
|
|
nanoid, _ := nanoid.CustomASCII("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 21)
|
|
return nanoid()
|
|
}
|
|
|
|
func NanoIDInt() (id int64, err error) {
|
|
decenaryID, err := nanoid.CustomASCII("0123456789", 18)
|
|
if err != nil {
|
|
return
|
|
}
|
|
id, err = strconv.ParseInt(decenaryID(), 10, 64)
|
|
return
|
|
}
|
|
|
|
func UUID() string {
|
|
return uuid.NewString()
|
|
}
|
|
|
|
func ULID() string {
|
|
return ulid.Make().String()
|
|
}
|