package guid
import "github.com/Microsoft/go-winio/pkg/guid"
Package guid provides a GUID type. The backing structure for a GUID is identical to that used by the golang.org/x/sys/windows GUID type. There are two main binary encodings used for a GUID, the big-endian encoding, and the Windows (mixed-endian) encoding. See here for details: https://en.wikipedia.org/wiki/Universally_unique_identifier#Encoding
Index ¶
- type GUID
- func FromArray(b [16]byte) GUID
- func FromString(s string) (GUID, error)
- func FromWindowsArray(b [16]byte) GUID
- func NewV4() (GUID, error)
- func NewV5(namespace GUID, name []byte) (GUID, error)
- func (g GUID) MarshalText() ([]byte, error)
- func (g GUID) String() string
- func (g GUID) ToArray() [16]byte
- func (g GUID) ToWindowsArray() [16]byte
- func (g *GUID) UnmarshalText(text []byte) error
- func (g GUID) Variant() Variant
- func (g GUID) Version() Version
- type Variant
- type Version
Types ¶
type GUID ¶
GUID represents a GUID/UUID. It has the same structure as golang.org/x/sys/windows.GUID so that it can be used with functions expecting that type. It is defined as its own type as that is only available to builds targeted at `windows`. The representation matches that used by native Windows code.
func FromArray ¶
FromArray constructs a GUID from a big-endian encoding array of 16 bytes.
func FromString ¶
FromString parses a string containing a GUID and returns the GUID. The only format currently supported is the `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` format.
func FromWindowsArray ¶
FromWindowsArray constructs a GUID from a Windows encoding array of bytes.
func NewV4 ¶
NewV4 returns a new version 4 (pseudorandom) GUID, as defined by RFC 4122.
func NewV5 ¶
NewV5 returns a new version 5 (generated from a string via SHA-1 hashing) GUID, as defined by RFC 4122. The RFC is unclear on the encoding of the name, and the sample code treats it as a series of bytes, so we do the same here.
Some implementations, such as those found on Windows, treat the name as a big-endian UTF16 stream of bytes. If that is desired, the string can be encoded as such before being passed to this function.
func (GUID) MarshalText ¶
MarshalText returns the textual representation of the GUID.
func (GUID) String ¶
func (GUID) ToArray ¶
ToArray returns an array of 16 bytes representing the GUID in big-endian encoding.
func (GUID) ToWindowsArray ¶
ToWindowsArray returns an array of 16 bytes representing the GUID in Windows encoding.
func (*GUID) UnmarshalText ¶
UnmarshalText takes the textual representation of a GUID, and unmarhals it into this GUID.
func (GUID) Variant ¶
Variant returns the GUID variant, as defined in RFC 4122.
func (GUID) Version ¶
Version returns the GUID version, as defined in RFC 4122.
type Variant ¶
type Variant uint8
Variant specifies which GUID variant (or "type") of the GUID. It determines how the entirety of the rest of the GUID is interpreted.
const ( // VariantUnknown specifies a GUID variant which does not conform to one of // the variant encodings specified in RFC 4122. VariantUnknown Variant = iota VariantNCS VariantRFC4122 // RFC 4122 VariantMicrosoft VariantFuture )
The variants specified by RFC 4122 section 4.1.1.
func (Variant) String ¶
type Version ¶
type Version uint8
Version specifies how the bits in the GUID were generated. For instance, a version 4 GUID is randomly generated, and a version 5 is generated from the hash of an input string.
func (Version) String ¶
Source Files ¶
guid.go guid_nonwindows.go variant_string.go
- Version
- v0.6.2 (latest)
- Published
- Apr 9, 2024
- Platform
- linux/amd64
- Imports
- 6 packages
- Last checked
- 15 hours ago –
Tools for package owners.