about summary refs log tree commit diff
path: root/users/wpcarro/emacs/pkgs/struct/struct.el
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--users/wpcarro/emacs/pkgs/struct/struct.el (renamed from users/wpcarro/emacs/.emacs.d/wpc/struct.el)29
1 files changed, 6 insertions, 23 deletions
diff --git a/users/wpcarro/emacs/.emacs.d/wpc/struct.el b/users/wpcarro/emacs/pkgs/struct/struct.el
index eeea04bf26bc..36d9d4ac0b9e 100644
--- a/users/wpcarro/emacs/.emacs.d/wpc/struct.el
+++ b/users/wpcarro/emacs/pkgs/struct/struct.el
@@ -17,26 +17,23 @@
 ;; Dependencies
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(require 'string)
+(require 's)
 (require 'dash)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Library
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(defvar struct--enable-tests? t
-  "When t, run the test suite defined herein.")
-
 (defmacro struct-update (type field f xs)
   "Apply F to FIELD in XS, which is a struct of TYPE.
 This is immutable."
   (let ((copier (->> type
                      symbol-name
-                     (string-prepend "copy-")
+                     (s-prepend "copy-")
                      intern))
         (accessor (->> field
                        symbol-name
-                       (string-prepend (string-concat (symbol-name type) "-"))
+                       (s-prepend (s-concat (symbol-name type) "-"))
                        intern)))
     `(let ((copy (,copier ,xs)))
        (setf (,accessor copy) (funcall ,f (,accessor copy)))
@@ -46,11 +43,11 @@ This is immutable."
   "Immutably set FIELD in XS (struct TYPE) to X."
   (let ((copier (->> type
                      symbol-name
-                     (string-prepend "copy-")
+                     (s-prepend "copy-")
                      intern))
         (accessor (->> field
                        symbol-name
-                       (string-prepend (string-concat (symbol-name type) "-"))
+                       (s-prepend (s-concat (symbol-name type) "-"))
                        intern)))
     `(let ((copy (,copier ,xs)))
        (setf (,accessor copy) ,x)
@@ -61,25 +58,11 @@ This is immutable."
 This is an adapter interface to `setf'."
   (let ((accessor (->> field
                        symbol-name
-                       (string-prepend (string-concat (symbol-name type) "-"))
+                       (s-prepend (s-concat (symbol-name type) "-"))
                        intern)))
     `(progn
        (setf (,accessor ,xs) ,x)
        ,xs)))
 
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Tests
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(when struct--enable-tests?
-  (cl-defstruct dummy name age)
-  (defvar struct--test-dummy (make-dummy :name "Roofus" :age 19))
-  (struct-set! dummy name "Doofus" struct--test-dummy)
-  (prelude-assert (string= "Doofus" (dummy-name struct--test-dummy)))
-  (let ((result (struct-set dummy name "Shoofus" struct--test-dummy)))
-    ;; Test the immutability of `struct-set'
-    (prelude-assert (string= "Doofus" (dummy-name struct--test-dummy)))
-    (prelude-assert (string= "Shoofus" (dummy-name result)))))
-
 (provide 'struct)
 ;;; struct.el ends here