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 so that stringification and marshaling can be supported. 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_windows.go variant_string.go
- Version
- v0.6.2 (latest)
- Published
- Apr 9, 2024
- Platform
- windows/amd64
- Imports
- 7 packages
- Last checked
- 17 hours ago –
Tools for package owners.