mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +00:00
Update uuid package documentation
This commit is contained in:
@@ -1,15 +1,46 @@
|
|||||||
/*
|
/*
|
||||||
package uuid implements Universally Unique Identifiers according to the
|
package uuid implements Universally Unique Identifiers according to the
|
||||||
standard outlined in RFC 4122.
|
standard originally outlined in RFC 4122 with additions from RFC 9562.
|
||||||
|
|
||||||
See here for more information: https://www.rfc-editor.org/rfc/rfc4122.html
|
|
||||||
|
|
||||||
Generation of versions 1 and 2 (the MAC address-based versions) are not yet
|
|
||||||
implemented.
|
|
||||||
|
|
||||||
The UUIDs are textually represented and read in the following string format:
|
The UUIDs are textually represented and read in the following string format:
|
||||||
`00000000-0000-4000-8000-000000000000`
|
`00000000-0000-v000-V000-000000000000`
|
||||||
|
|
||||||
Outside of string representations, they are represented in memory by a 128-bit structure.
|
`v` is where the version bits reside, and `V` is where the variant bits reside.
|
||||||
|
The meaning of the other bits is version-dependent.
|
||||||
|
|
||||||
|
Outside of string representations, UUIDs are represented in memory by a 128-bit
|
||||||
|
structure organized as an array of 16 bytes.
|
||||||
|
|
||||||
|
|
||||||
|
Of the UUID versions which may make use of random number generation, a
|
||||||
|
requirement is placed upon them that the underlying generator be
|
||||||
|
cryptographically-secure, per RFC 9562's suggestion.
|
||||||
|
|
||||||
|
- Version 1 without a node argument.
|
||||||
|
- Version 4 in all cases.
|
||||||
|
- Version 6 without either a clock or node argument.
|
||||||
|
- Version 7 in all cases.
|
||||||
|
|
||||||
|
Here's an example of how to set up one:
|
||||||
|
|
||||||
|
import "core:crypto"
|
||||||
|
import "core:encoding/uuid"
|
||||||
|
|
||||||
|
main :: proc() {
|
||||||
|
my_uuid: uuid.Identifier
|
||||||
|
|
||||||
|
{
|
||||||
|
// This scope will have a CSPRNG.
|
||||||
|
context.random_generator = crypto.random_generator()
|
||||||
|
my_uuid = uuid.generate_v7()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Back to the default random number generator.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
For more information on the specifications, see here:
|
||||||
|
- https://www.rfc-editor.org/rfc/rfc4122.html
|
||||||
|
- https://www.rfc-editor.org/rfc/rfc9562.html
|
||||||
*/
|
*/
|
||||||
package uuid
|
package uuid
|
||||||
|
|||||||
Reference in New Issue
Block a user