Documentation
¶
Overview ¶
Package uuid provides implementations of the Universally Unique Identifier (UUID), as specified in RFC-4122 and DCE 1.1.
RFC-4122[1] provides the specification for versions 1, 3, 4, and 5.
DCE 1.1[2] provides the specification for version 2.
[1] https://tools.ietf.org/html/rfc4122 [2] http://pubs.opengroup.org/onlinepubs/9696989899/chap5.htm#tagcjh_08_02_01_01
Index ¶
- Constants
- Variables
- type NullUUID
- type UUID
- func FromBytes(input []byte) (UUID, error)
- func FromBytesOrNil(input []byte) UUID
- func FromString(input string) (UUID, error)
- func FromStringOrNil(input string) UUID
- func Must(u UUID, err error) UUID
- 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) Format(f fmt.State, c rune)
- func (u UUID) MarshalBinary() ([]byte, error)
- func (u UUID) MarshalText() ([]byte, error)
- func (u *UUID) Scan(src interface{}) error
- func (u *UUID) SetVersion(v byte)
- func (u UUID) String() string
- func (u *UUID) UnmarshalBinary(data []byte) error
- func (u *UUID) UnmarshalText(text []byte) error
- func (u UUID) Value() (driver.Value, error)
- func (u UUID) Version() byte
Constants ¶
const ( V1 byte // Version 1 (date-time and MAC address) V2 // Version 2 (date-time and MAC address, DCE security version) V3 // Version 3 (namespace name-based) V4 // Version 4 (random) V5 // Version 5 (namespace name-based) )
UUID versions.
const Size = 16
Size of a UUID in bytes.
Variables ¶
var Nil = UUID{}
Nil is the nil UUID, as specified in RFC-4122, that has all 128 bits set to zero.
Functions ¶
This section is empty.
Types ¶
type NullUUID ¶
NullUUID can be used with the standard sql package to represent a UUID value that can be NULL in the database.
func (NullUUID) MarshalJSON ¶
MarshalJSON marshals the NullUUID as null or the nested UUID
func (*NullUUID) UnmarshalJSON ¶
UnmarshalJSON unmarshals a NullUUID
type UUID ¶
UUID is an array type to represent the value of a UUID, as defined in RFC-4122.
func FromBytes ¶
FromBytes returns a UUID generated from the raw byte slice input. It will return an error if the slice isn't 16 bytes long.
func FromBytesOrNil ¶
FromBytesOrNil returns a UUID generated from the raw byte slice input. Same behavior as FromBytes(), but returns uuid.Nil instead of an error.
func FromString ¶
FromString returns a UUID parsed from the input string. Input is expected in a form accepted by UnmarshalText.
func FromStringOrNil ¶
FromStringOrNil returns a UUID parsed from the input string. Same behavior as FromString(), but returns uuid.Nil instead of an 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) Format ¶
Format implements fmt.Formatter for UUID values.
The behavior is as follows: The 'x' and 'X' verbs output only the hex digits of the UUID, using a-f for 'x' and A-F for 'X'. The 'v', '+v', 's' and 'q' verbs return the canonical RFC-4122 string representation. The 'S' verb returns the RFC-4122 format, but with capital hex digits. The '#v' verb returns the "Go syntax" representation, which is a 16 byte array initializer. All other verbs not handled directly by the fmt package (like '%p') are unsupported and will return "%!verb(uuid.UUID=value)" as recommended by the fmt package.
func (UUID) MarshalBinary ¶
MarshalBinary implements the encoding.BinaryMarshaler interface.
func (UUID) MarshalText ¶
MarshalText implements the encoding.TextMarshaler interface. The encoding is the same as returned by the String() method.
func (*UUID) Scan ¶
Scan implements the sql.Scanner interface. A 16-byte slice will be handled by UnmarshalBinary, while a longer byte slice or a string will be handled by UnmarshalText.
func (UUID) String ¶
String returns a canonical RFC-4122 string representation of the UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
func (*UUID) UnmarshalBinary ¶
UnmarshalBinary implements the encoding.BinaryUnmarshaler interface. It will return an error if the slice isn't 16 bytes long.
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" "{6ba7b8109dad11d180b400c04fd430c8}", "urn:uuid:6ba7b8109dad11d180b400c04fd430c8"
ABNF for supported UUID text representation follows:
URN := 'urn' UUID-NID := 'uuid' hexdig := '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' hexoct := hexdig hexdig 2hexoct := hexoct hexoct 4hexoct := 2hexoct 2hexoct 6hexoct := 4hexoct 2hexoct 12hexoct := 6hexoct 6hexoct hashlike := 12hexoct canonical := 4hexoct '-' 2hexoct '-' 2hexoct '-' 6hexoct plain := canonical | hashlike uuid := canonical | hashlike | braced | urn braced := '{' plain '}' | '{' hashlike '}' urn := URN ':' UUID-NID ':' plain