aboutsummaryrefslogtreecommitdiff
path: root/packages.lisp
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2025-02-22 23:00:17 +0000
committerAryadev Chavali <aryadev@aryadevchavali.com>2025-02-22 23:00:17 +0000
commita80b64b045fec86b8475cc11c3d21c2548d1ff5f (patch)
treed9de7816cca8a5f1ea4c42d36e7bdec44ec63e1d /packages.lisp
parent62f92114ee2d69bfb46084cc960a5c182f32df94 (diff)
downloadcantedraw-a80b64b045fec86b8475cc11c3d21c2548d1ff5f.tar.gz
cantedraw-a80b64b045fec86b8475cc11c3d21c2548d1ff5f.tar.bz2
cantedraw-a80b64b045fec86b8475cc11c3d21c2548d1ff5f.zip
Make card a structure
Card is a structure instead of just a type. Stronger type checking, automatic constructor, destructors and existence check.
Diffstat (limited to 'packages.lisp')
-rw-r--r--packages.lisp8
1 files changed, 5 insertions, 3 deletions
diff --git a/packages.lisp b/packages.lisp
index 2f693fd..a6db383 100644
--- a/packages.lisp
+++ b/packages.lisp
@@ -40,16 +40,18 @@
(:use :cl :5d-lib.macros :5d-lib.functions)
(:export
;; Types
- :int-card :rank :suit :card :cardset
+ :int-card :rank :suit :cardset
+ ;; card struct
+ :card :make-card :card-suit :card-rank :card-p
;; Converters
:int->suit :int->rank :int->card
:suit->int :rank->int :card->int
;; Comparators
:suit< :rank< :card<
;; Serialisers
- :suit->str :rank->str :card->str :cardset->str
+ :suit->str :rank->str :cardset->str
;; Constructors
- :make-joker :make-deck))
+ :make-deck))
(defpackage cantedraw.player
(:nicknames :5d.player)