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.
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)))