# Basic types

Basic types and utilities.

## Data types

type raft_id

  Hold the value of a Raft server ID. Guaranteed to be at least 64-bit long.

type raft_term

  Hold the value of a Raft term. Guaranteed to be at least 64-bit long.

type raft_index

  Hold the value of a raft entry index. Guaranteed to be at least 64-bit long.

type raft_time

  Hold a time value expressed in milliseconds since the epoch.

struct raft_buffer

  A data buffer.

      struct raft_buffer
      {
          void *base; /* Pointer to the buffer data */
          size_t len; /* Length of the buffer */
      };

enum raft_entry_type

  Log entry type codes.

      enum raft_entry_type {
          RAFT_COMMAND = 1, /* Command for the application FSM. */
          RAFT_BARRIER,     /* Wait for all previous commands to be applied. */
          RAFT_CHANGE       /* Raft configuration change. */
      };

struct raft_entry

  A single entry in the raft log.

      struct raft_entry
      {
          raft_term term;         /* Term in which the entry was created */
          unsigned short type;    /* Type (FSM command, barrier, config change) */
          struct raft_buffer buf; /* Entry data */
          void *batch;            /* Batch that buf's memory points to, if any */
      };