protocol

# `uuid_protocol`

Universally unique identifier (UUID) generator protocol.

Author: Paulo Moura
Version: 0:3:0
Date: 2021-03-13
Compilation flags:
`static`
Dependencies:
(none)
Remarks:
(none)
Inherited public predicates:
(none)

- Public predicates

  - `uuid_v1/2`

  - `uuid_v4/1`

  - `uuid_null/1`

  - `random_node/1`

- Protected predicates

- Private predicates

- Operators

## Public predicates

### `uuid_v1/2`

Returns a version 1 UUID for the given MAC address (a list of six bytes). The MAC address can be replaced by a random 6 bytes node identifier as per RFC 4122 when the MAC address is not available or should not be disclosed.

Compilation flags:
`static`
Template:
`uuid_v1(MAC,UUID)`
Mode and number of proofs:
`uuid_v1(+list(byte),--ground)` - `one`

### `uuid_v4/1`

Returns a version 4 UUID.

Compilation flags:
`static`
Template:
`uuid_v4(UUID)`
Mode and number of proofs:
`uuid_v4(--ground)` - `one`

### `uuid_null/1`

Returns the null UUID.

Compilation flags:
`static`
Template:
`uuid_null(UUID)`
Mode and number of proofs:
`uuid_null(--ground)` - `one`

### `random_node/1`

Generates a list with six random bytes that can be used in alternative to a MAC address when generating version 1 UUIDs.

Compilation flags:
`static`
Template:
`random_node(Node)`
Mode and number of proofs:
`random_node(--list(byte))` - `one`

## Protected predicates

(none)

## Private predicates

(none)

## Operators

(none)