1 (uiop:define-package
#:lw2.hash-utils
3 (:import-from
#:flexi-streams
#:string-to-octets
#:octets-to-string
)
4 (:export
#:city-hash-128-vector
#:hash-string
#:hash-printable-object
#:hash-file-list
)
7 (in-package #:lw2.hash-utils
)
9 (defun city-hash-128-vector (data)
11 (cons 'vector
(map 'list
#'bit-smasher
:int-
>octets
13 (city-hash:city-hash-128 data
))))))
15 (defun hash-string (string)
16 (city-hash-128-vector (string-to-octets string
:external-format
:utf-8
)))
18 (defun hash-printable-object (object)
19 (hash-string (write-to-string object
:circle nil
:escape nil
:pretty nil
)))
21 (defun hash-file-list (file-list)
25 ,@(map 'list
(lambda (f) (uiop:read-file-string
(uiop:subpathname
(asdf:system-source-directory
"lw2-viewer") f
))) file-list
)))))