# CassUuid

### struct CassUuid

Version 1 (time-based) or version 4 (random) UUID. 

### Public Functions

### void cass_uuid_min_from_time([cass_uint64_t](https://cpp-rs-driver.docs.scylladb.com/stable/api/group.BasicTypes.md#_CPPv413cass_uint64_t) time, [CassUuid](#_CPPv48CassUuid) \*output)

Sets the UUID to the minimum V1 (time) value for the specified time.

* **Parameters:**
  * **time** – **[in]** 
  * **output** – **[out]** A minimum V1 UUID for the specified time. 

### void cass_uuid_max_from_time([cass_uint64_t](https://cpp-rs-driver.docs.scylladb.com/stable/api/group.BasicTypes.md#_CPPv413cass_uint64_t) time, [CassUuid](#_CPPv48CassUuid) \*output)

Sets the UUID to the maximum V1 (time) value for the specified time.

* **Parameters:**
  * **time** – **[in]** 
  * **output** – **[out]** A maximum V1 UUID for the specified time. 

### [cass_uint64_t](https://cpp-rs-driver.docs.scylladb.com/stable/api/group.BasicTypes.md#_CPPv413cass_uint64_t) cass_uuid_timestamp([CassUuid](#_CPPv48CassUuid) uuid)

Gets the timestamp for a V1 UUID

* **Parameters:**
  **uuid** – **[in]** 
* **Returns:**
  The timestamp in milliseconds since the Epoch (00:00:00 UTC on 1 January 1970). 0 returned if the UUID is not V1. 

### [cass_uint8_t](https://cpp-rs-driver.docs.scylladb.com/stable/api/group.BasicTypes.md#_CPPv412cass_uint8_t) cass_uuid_version([CassUuid](#_CPPv48CassUuid) uuid)

Gets the version for a UUID

* **Parameters:**
  **uuid** – **[in]** 
* **Returns:**
  The version of the UUID (1 or 4) 

### void cass_uuid_string([CassUuid](#_CPPv48CassUuid) uuid, char \*output)

Returns a null-terminated string for the specified UUID.

* **Parameters:**
  * **uuid** – **[in]** 
  * **output** – **[out]** A null-terminated string of length CASS_UUID_STRING_LENGTH. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/stable/api/group.CassError.md#_CPPv49CassError) cass_uuid_from_string(const char \*str, [CassUuid](#_CPPv48CassUuid) \*output)

Returns a UUID for the specified string.

Example: “550e8400-e29b-41d4-a716-446655440000”

* **Parameters:**
  * **str** – **[in]** 
  * **output** – **[out]** 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/stable/api/group.CassError.md#_CPPv49CassError) cass_uuid_from_string_n(const char \*str, size_t str_length, [CassUuid](#_CPPv48CassUuid) \*output)

Same as [cass_uuid_from_string()](#struct_cass_uuid_1a4a9e33ca584fd21614e6ed7014ee92f6), but with lengths for string parameters.

#### SEE ALSO
[cass_uuid_from_string()](#struct_cass_uuid_1a4a9e33ca584fd21614e6ed7014ee92f6)

* **Parameters:**
  * **str** – **[in]** 
  * **str_length** – **[in]** 
  * **output** – **[out]** 
* **Returns:**
  same as [cass_uuid_from_string()](#struct_cass_uuid_1a4a9e33ca584fd21614e6ed7014ee92f6)

### Public Members

### [cass_uint64_t](https://cpp-rs-driver.docs.scylladb.com/stable/api/group.BasicTypes.md#_CPPv413cass_uint64_t) time_and_version

Represents the time and version part of a UUID. The most significant 4 bits represent the version and the bottom 60 bits representing the time part. For version 1 the time part represents the number of 100 nanosecond periods since 00:00:00 UTC, January 1, 1970 (the Epoch). For version 4 the time part is randomly generated. 

### [cass_uint64_t](https://cpp-rs-driver.docs.scylladb.com/stable/api/group.BasicTypes.md#_CPPv413cass_uint64_t) clock_seq_and_node

Represents the clock sequence and the node part of a UUID. The most significant 16 bits represent the clock sequence (except for the most significant bit which is always set) and the bottom 48 bits represent the node part. For version 1 (time-based) the clock sequence part is randomly generated and the node part can be explicitly set, otherwise, it’s generated from node unique information. For version 4 both the clock sequence and the node parts are randomly generated.
