init commit
This commit is contained in:
71
vendor/github.com/twinj/uuid/version.go
generated
vendored
Normal file
71
vendor/github.com/twinj/uuid/version.go
generated
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
package uuid
|
||||
|
||||
// Version represents the type of UUID.
|
||||
type Version int
|
||||
|
||||
// The following are the supported Versions.
|
||||
const (
|
||||
VersionUnknown Version = iota // Unknown
|
||||
VersionOne // Time based
|
||||
VersionTwo // DCE security via POSIX UIDs
|
||||
VersionThree // Namespace hash uses MD5
|
||||
VersionFour // Crypto random
|
||||
VersionFive // Namespace hash uses SHA-1
|
||||
)
|
||||
|
||||
// The following are the supported Variants.
|
||||
const (
|
||||
VariantNCS uint8 = 0x00
|
||||
VariantRFC4122 uint8 = 0x80 // or and A0 if masked with 1F
|
||||
VariantMicrosoft uint8 = 0xC0
|
||||
VariantFuture uint8 = 0xE0
|
||||
)
|
||||
|
||||
const (
|
||||
// 3f used by RFC4122 although 1f works for all
|
||||
variantSet = 0x3f
|
||||
|
||||
// rather than using 0xc0 we use 0xe0 to retrieve the variant
|
||||
// The result is the same for all other variants
|
||||
// 0x80 and 0xa0 are used to identify RFC4122 compliance
|
||||
variantGet = 0xe0
|
||||
)
|
||||
|
||||
// String returns English description of version.
|
||||
func (o Version) String() string {
|
||||
switch o {
|
||||
case VersionOne:
|
||||
return "Version 1: Based on a 60 Bit Timestamp."
|
||||
case VersionTwo:
|
||||
return "Version 2: Based on DCE security domain and 60 bit timestamp."
|
||||
case VersionThree:
|
||||
return "Version 3: Namespace UUID and unique names hashed by MD5."
|
||||
case VersionFour:
|
||||
return "Version 4: Crypto-random generated."
|
||||
case VersionFive:
|
||||
return "Version 5: Namespace UUID and unique names hashed by SHA-1."
|
||||
default:
|
||||
return "Unknown: Not supported"
|
||||
}
|
||||
}
|
||||
|
||||
func resolveVersion(version uint8) Version {
|
||||
switch Version(version) {
|
||||
case VersionOne, VersionTwo, VersionThree, VersionFour, VersionFive:
|
||||
return Version(version)
|
||||
default:
|
||||
return VersionUnknown
|
||||
}
|
||||
}
|
||||
|
||||
func variant(variant uint8) uint8 {
|
||||
switch variant & variantGet {
|
||||
case VariantRFC4122, 0xA0:
|
||||
return VariantRFC4122
|
||||
case VariantMicrosoft:
|
||||
return VariantMicrosoft
|
||||
case VariantFuture:
|
||||
return VariantFuture
|
||||
}
|
||||
return VariantNCS
|
||||
}
|
||||
Reference in New Issue
Block a user