Documentation
¶
Index ¶
- Constants
- Variables
- func FastUuid() string
- func GenerateNanoId(alphabet string, size int) (string, error)
- func MustGenerateNanoId(alphabet string, size int) string
- func MustNanoId(l ...int) string
- func NewNanoId(l ...int) (string, error)
- func Uuid1() string
- func Uuid2() string
- func Uuid3(name string) string
- func Uuid4() string
- func Uuid5(name string) string
- type Generator
- type Snowflake
- type UUID
- func FromBytes(input []byte) (u UUID, err error)
- func FromBytesOrNil(input []byte) UUID
- func FromString(input string) (u UUID, err error)
- func FromStringOrNil(input string) UUID
- func Must(u UUID, err error) UUID
- func NewV1() (UUID, error)
- func NewV2(domain byte) (UUID, error)
- func NewV3(ns UUID, name string) UUID
- func NewV4() (UUID, error)
- func NewV5(ns UUID, name string) UUID
- func (u UUID) Bytes() []byte
- func (u UUID) MarshalBinary() (data []byte, err error)
- func (u UUID) MarshalText() (text []byte, err error)
- func (u UUID) SetVariant(v byte)
- func (u UUID) SetVersion(v byte)
- func (u UUID) String() string
- func (u UUID) UnmarshalBinary(data []byte) (err error)
- func (u UUID) UnmarshalText(text []byte) (err error)
Constants ¶
const ( V1 byte V2 V3 V4 V5 )
UUID versions
const ( VariantNCS byte = iota VariantRFC4122 VariantMicrosoft VariantFuture )
UUID layout variants.
const ( DomainPerson = iota DomainGroup DomainOrg )
UUID DCE domains.
const Size = 16
Size of a UUID in bytes.
Variables ¶
var ( NamespaceDNS = Must(FromString("6ba7b810-9dad-11d1-80b4-00c04fd430c8")) NamespaceURL = Must(FromString("6ba7b811-9dad-11d1-80b4-00c04fd430c8")) NamespaceOID = Must(FromString("6ba7b812-9dad-11d1-80b4-00c04fd430c8")) NamespaceX500 = Must(FromString("6ba7b814-9dad-11d1-80b4-00c04fd430c8")) )
Predefined namespace UUIDs.
var Nil = UUID{}
Functions ¶
func GenerateNanoId ¶
GenerateNanoId 使用初始字符表和长度生成ID
func MustGenerateNanoId ¶
MustGenerateNanoId is the same as Generate but panics on error.
func MustNanoId ¶
MustNanoId is the same as New but panics on error.
Types ¶
type Generator ¶
type Generator interface { NewV1() (UUID, error) NewV2(domain byte) (UUID, error) NewV3(ns UUID, name string) UUID NewV4() (UUID, error) NewV5(ns UUID, name string) UUID }
Generator provides interface for generating UUIDs.
type Snowflake ¶
type Snowflake struct {
// contains filtered or unexported fields
}
func NewSnowflake ¶
type UUID ¶
func FromBytes ¶
FromBytes returns UUID converted from raw byte slice input. It will return error if the slice isn't 16 bytes long.
func FromBytesOrNil ¶
FromBytesOrNil returns UUID converted from raw byte slice input. Same behavior as FromBytes, but returns a Nil UUID on error.
func FromString ¶
FromString returns UUID parsed from string input. Input is expected in a form accepted by UnmarshalText.
func FromStringOrNil ¶
FromStringOrNil returns UUID parsed from string input. Same behavior as FromString, but returns a Nil UUID on error.
func Must ¶
Must is a helper that wraps a call to a function returning (UUID, error) and panics if the error is non-nil. It is intended for use in variable initializations such as
var packageUUID = uuid.Must(uuid.FromString("123e4567-e89b-12d3-a456-426655440000"));
func (UUID) MarshalBinary ¶
MarshalBinary 序列化为字节数组
func (UUID) MarshalText ¶
MarshalText implements the encoding.TextMarshaler interface. The encoding is the same as returned by String.
func (UUID) String ¶
Returns canonical string representation of UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
func (UUID) UnmarshalBinary ¶
UnmarshalBinary implements the encoding.BinaryUnmarshaler interface. 字节数组的长度不是16位,则返回错误
func (UUID) UnmarshalText ¶
UnmarshalText implements the encoding.TextUnmarshaler interface. Following formats are supported:
"6ba7b810-9dad-11d1-80b4-00c04fd430c8", "{6ba7b810-9dad-11d1-80b4-00c04fd430c8}", "urn:uuid:6ba7b810-9dad-11d1-80b4-00c04fd430c8" "6ba7b8109dad11d180b400c04fd430c8"
ABNF for supported UUID text representation follows:
uuid := canonical | hashlike | braced | urn plain := canonical | hashlike canonical := 4hexoct '-' 2hexoct '-' 2hexoct '-' 6hexoct hashlike := 12hexoct braced := '{' plain '}' urn := URN ':' UUID-NID ':' plain URN := 'urn' UUID-NID := 'uuid' 12hexoct := 6hexoct 6hexoct 6hexoct := 4hexoct 2hexoct 4hexoct := 2hexoct 2hexoct 2hexoct := hexoct hexoct hexoct := hexdig hexdig hexdig := '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F'