Module Uuidm
Universally unique identifiers (UUIDs).
Uuidm
implements 128 bits universally unique identifiers version 3, 5 (name based with MD5, SHA-1 hashing) and 4 (random based) according to RFC 4122.
References
- P. Leach et al. A universally unique identifier (UUID) URN Namespace, 2005.
v0.9.6 - homepage
UUIDs
type version
=[
|
`V3 of t * string
Name based with MD5 hashing
|
`V4
Random based
|
`V5 of t * string
Name based with SHA-1 hasing
]
The type for UUID versions and generation parameters.
`V3
and`V5
specify a namespace and a name for the generation.`V4
is random based with a private state seeded withRandom.State.make_self_init
, usev4_gen
to specify your own seed.
val v4_gen : Stdlib.Random.State.t -> unit -> t
v4 seed
is a function that generates random version 4 UUIDs with the givenseed
.
Constants
val nil : t
nil
is the nil UUID.
val ns_dns : t
ns_dns
is the DNS namespace UUID.
val ns_url : t
ns_url
is the URL namespace UUID.
val ns_oid : t
ns_oid
is the ISO OID namespace UUID.
val ns_X500 : t
ns_dn
is the X.500 DN namespace UUID.
Comparing
Conversion with UUID binary representation
val of_bytes : ?pos:int -> string -> t option
of_bytes pos s
is the UUID represented by the 16 bytes starting atpos
(defaults to0
) ins
. ReturnsNone
if the string is not long enough.
val to_bytes : t -> string
to_bytes u
isu
as a 16 bytes long string.
Conversion with UUID US-ASCII representation
val of_string : ?pos:int -> string -> t option
of_string pos s
converts the substring ofs
starting atpos
(defaults to0
) of the form"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
where X is a lower or upper case hexadecimal number to an UUID. ReturnsNone
if a parse error occured.
val to_string : ?upper:bool -> t -> string
to_string u
isu
as a string of the form"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
where X is a lower case hexadecimal number (or upper ifupper
istrue
).
Pretty-printing
val pp : Stdlib.Format.formatter -> t -> unit
pp ppf u
formatsu
onppf
liketo_string
would do. It is unspecified whether upper or lower case hexadecimal numbers are used.
val pp_string : ?upper:bool -> Stdlib.Format.formatter -> t -> unit
pp_string ?upper ppf u
formatsu
onppf
liketo_string
would do.