;; This Source Code Form is subject to the terms of the Mozilla Public
;; License, v. 2.0. If a copy of the MPL was not distributed with this
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
;;
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>

(ns uxbox.util.uuid
  "Provides a UUID v4 uuid generation.

  In difference with builtin `random-uuid` function this
  implementation tries to use high quality RNG if is
  available (browser crypto object or nodejs crypto module).

  If no high qualiry RNG, switches to the default Math based
  RNG with proper waring in the console."
  (:require [uxbox.util.uuid-impl :as impl]))

(defn v4
  "Generate a v4 (random) UUID."
  []
  (uuid (impl/v4)))

(def random
  "Alias for `uxbox.util.uuid/v4`."
  v4)
