text: /* =================================================================== *
   * Вариант реализации функции генерации первой части уникального       *
   * идентификатора договора (сделки) - универсального уникального       *
   * идентификатора в соответствии с указанием Банка России              *
   * "О правилах присвоения уникального идентификатора договора (сделки),*
   * по обязательствам из которого (из которой) формируется кредитная    *
   * история"                                                            *
   * ===================================================================  */
  
  #include <stdbool.h>
  #include <stdint.h>
  
  #ifdef uuid_t
  #undef uuid_t
  #endif
  
  typedef struct {
      uint32_t  time_low;
      uint16_t  time_mid;
      uint16_t  time_hi_and_version;
      uint8_t   clock_seq_hi_and_reserved;
      uint8_t   clock_seq_low;
      uint8_t   node[6];
  } uuid_t;
  
  /**
   * Инициализация модуля генерации УУИд
   * Данную функцию необходимо вызвать один раз перед первой генерацией УУИд
   * Возвращаемый результат:
   *   true - инициализация выполнена успешно
   *   false - не удалось выполнить инициализацию
   * Если инициализация не выполнена, функция uuid_create() будет завершаться
   * ошибкой или возвращать некорректный результат
   */
  bool uuid_init(void);
  
  /**
   * Деинициализация модуля генерации УУИд (освобождение ресурсов)
   * Данную функция необходимо вызвать перед завершением работы приложения
   * для освобождения ресурсов, занятых модулем.
   */
  void uuid_deinit(void);
  
  /**
   * Генерация УУИд
   * uuid - указатель на структуру uuid_t для помещения в нее данные УУИд
   * Возвращаемый результат:
   *   true - если УУИд создан успешно и помещен в структуру
   *   false - если УУИд создать не удалось
   */
  bool uuid_create(uuid_t *uuid);
  