Function: uuid-from-bytes

uuid-from-bytes is a byte-compiled function defined in uuid.el.gz.

Signature

(uuid-from-bytes UUID-BYTES)

Documentation

Parse unibyte string UUID-BYTES and return a UUID object.

If UUID-BYTES are not unibyte, or not 16 bytes, a uuid-invalid-bytes error is signaled.

View in manual

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/uuid.el.gz
(defun uuid-from-bytes (uuid-bytes)
  "Parse unibyte string UUID-BYTES and return a UUID object.

If UUID-BYTES are not unibyte, or not 16 bytes, a `uuid-invalid-bytes'
error is signaled."
  (unless (and
           (not (multibyte-string-p uuid-bytes))
           (= 16 (string-bytes uuid-bytes)))
    (signal 'uuid-invalid-bytes (list uuid-bytes)))
  (let* ((parts (bindat-unpack uuid--bindat-type uuid-bytes))
         (version (uuid--upper-bits (assoc-default :ver-mid parts) 4 16))
         (variant (uuid--upper-bits (assoc-default :var-low parts) 2 64))
         (high (assoc-default :high parts))
         (mid (uuid--lower-bits (assoc-default :ver-mid parts) 12))
         (low (uuid--lower-bits (assoc-default :var-low parts) 62)))
    (uuid--from-parts high mid low version variant)))