changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/lib/obj/pkg.lisp

changeset 212: 742e6d74752d
parent: e48427b30ecd
child: 0d46ef787334
author: Richard Westhaver <ellis@rwest.io>
date: Fri, 23 Feb 2024 18:09:23 -0500
permissions: -rw-r--r--
description: added sans-io module, more bits
1 (defpackage :obj/hash
2  (:nicknames :hash)
3  (:use :cl :std)
4  (:export
5  :*global-hasher*
6  :+global-hash+
7  :djb
8  :hash-object
9  :hash-object-address
10  :dumb-string-hash
11  ;; castable
12  :castable
13  :make-castable
14  :castable-p
15  :rehash
16  :castable-size
17  :castable-count
18  :castable-test
19  :castable-hasher
20  :getchash
21  :remchash
22  :try-remchash
23  :put-if-absent
24  :put-if-equal
25  :put-if-present
26  :clrchash
27  :mapchash))
28 
29 (defpackage :obj/id
30  (:nicknames :id)
31  (:use :cl :std :obj/hash)
32  (:export
33  :id :reset-id :update-id :make-id
34  :id-factory))
35 
36 (defpackage :obj/seq
37  (:nicknames :seq)
38  (:use :cl :std)
39  (:export :iterator :ring))
40 
41 (defpackage :obj/tree
42  (:nicknames :tree)
43  (:use :cl :std :obj/id :obj/seq)
44  (:export :keytype :node :binary-node :unary-node :ternary-node :avl-node
45  :make-node :make-binary-node :make-unary-node :make-ternary-node :make-avl-node))
46 
47 (defpackage :obj/graph
48  (:nicknames :graph)
49  (:use :cl :std :obj/id :obj/seq :obj/tree)
50  (:export
51  :vertex :edge :graph
52  :weighted-edge :directed-edge :undirected-edge))
53 
54 (defpackage :obj/graph/dot
55  (:nicknames :dot)
56  (:use :cl :std :obj/graph :obj/id :cli)
57  (:export))
58 
59 (defpackage :obj/color
60  (:nicknames :color)
61  (:use :cl :std)
62  (:export
63  #:rgb #:rgb-red #:rgb-green #:rgb-blue #:gray #:&rgb
64  #:hsv #:hsv-hue #:hsv-saturation #:hsv-value #:&hsv
65  #:rgb-to-hsv #:hsv-to-rgb #:hex-to-rgb #:as-hsv #:as-rgb
66  #:rgb-combination #:hsv-combination
67  #:parse-hex-rgb #:print-hex-rgb
68  :color-palette :parse-and-write-color-definitions))
69 
70 (defpackage :obj/time
71  (:nicknames :time)
72  (:use :cl :std)
73  (:export
74  :timestamp
75  :date
76  :time-of-day
77  :make-timestamp
78  :clone-timestamp
79  :day-of
80  :sec-of
81  :nsec-of
82  :timestamp<
83  :timestamp<=
84  :timestamp>
85  :timestamp>=
86  :timestamp=
87  :timestamp/=
88  :timestamp-maximum
89  :timestamp-minimum
90  :adjust-timestamp
91  :adjust-timestamp!
92  :timestamp-whole-year-difference
93  :days-in-month
94  :timestamp-
95  :timestamp+
96  :timestamp-difference
97  :timestamp-minimize-part
98  :timestamp-maximize-part
99  :with-decoded-timestamp
100  :decode-timestamp
101  :timestamp-century
102  :timestamp-day
103  :timestamp-day-of-week
104  :timestamp-decade
105  :timestamp-hour
106  :timestamp-microsecond
107  :timestamp-millennium
108  :timestamp-millisecond
109  :timestamp-minute
110  :timestamp-month
111  :timestamp-second
112  :timestamp-week
113  :timestamp-year
114  :parse-timestring
115  :invalid-timestring
116  :format-timestring
117  :format-rfc1123-timestring
118  :to-rfc1123-timestring
119  :format-rfc3339-timestring
120  :to-rfc3339-timestring
121  :encode-timestamp
122  :parse-rfc3339-timestring
123  :universal-to-timestamp
124  :timestamp-to-universal
125  :unix-to-timestamp
126  :timestamp-to-unix
127  :timestamp-subtimezone
128  :define-timezone
129  :*default-timezone*
130  :*clock*
131  :leap-second-adjusted
132  :clock-now
133  :clock-today
134  :find-timezone-by-location-name
135  :timezones-matching-subzone
136  :all-timezones-matching-subzone
137  :reread-timezone-repository
138  :now
139  :today
140  :enable-read-macros
141  :+utc-zone+
142  :+gmt-zone+
143  :+month-names+
144  :+short-month-names+
145  :+day-names+
146  :+short-day-names+
147  :+seconds-per-day+
148  :+seconds-per-hour+
149  :+seconds-per-minute+
150  :+minutes-per-day+
151  :+minutes-per-hour+
152  :+hours-per-day+
153  :+days-per-week+
154  :+months-per-year+
155  :+iso-8601-format+
156  :+iso-8601-date-format+
157  :+iso-8601-time-format+
158  :+rfc3339-format+
159  :+rfc3339-format/date-only+
160  :+asctime-format+
161  :+rfc-1123-format+
162  :+iso-week-date-format+
163  :astronomical-julian-date
164  :modified-julian-date
165  :astronomical-modified-julian-date
166  :zone-name
167  :encode-universal-time-with-tz
168  :decode-universal-time-with-tz))
169 
170 (defpackage :obj/tbl
171  (:nicknames :tbl)
172  (:use :cl :std)
173  (:import-from :uiop :split-string)
174  (:export
175  :table
176  :row
177  :make-table
178  :make-row
179  :add-to-table
180  :add-to-row
181  :get-row
182  :get-row-column
183  :set-row-column
184  :num-rows
185  :num-cols
186  :num-col
187  :rectangular-table-p
188  :sequence->row
189  :row-sequence->table
190  :with-rows
191  :select
192  :distinct
193  :top
194  :order-by
195  :where
196  :where-filter
197  :where-or
198  :where-and
199  :table-from-csv
200  :table-from-tvs))
201 
202 (defpackage :obj/db
203  (:nicknames :db)
204  (:use :cl :std :id :seq :sb-mop :sb-pcl)
205  (:export
206  :xdb
207  :collection
208  :collection-aware
209  :map-docs
210  :duplicate-doc-p
211  :find-duplicate-doc
212  :store-doc
213  :serialize-doc
214  :serialize-docs
215  :load-from-file
216  :get-collection
217  :add-collection
218  :snapshot
219  :load-db
220  :get-docs
221  :get-doc
222  :get-val
223  :set-val
224  :sum
225  :max-val
226  :document
227  :doc-type
228  :key
229  :find-doc
230  :find-docs
231  :sort-collection
232  :docs
233  :*fsync-data*
234  :storable-class
235  :dbs
236  :get-db
237  :add-db
238  :make-db
239  :connect-db
240  :query-db
241  :db-get
242  :close-db
243  :database
244  :enable-sequences
245  :next-sequence
246  :sort-docs))
247 
248 (uiop:define-package :obj
249  (:use-reexport :hash :color :seq :tree :graph :tbl :id :db))