94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
;; (dartifact->alist
;; (car (get-dartifacts db #f 0 #f))
;; '((foods (fruit . f)
;; (meat . m)))))
;; => "beef"
;;
(module artifacts
(
;; cards, util and misc
;; sort-cards
;; calc-sha1
;;
;; low-level constructor procs, exposed only for development/testing, will be removed
|
>
>
|
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
;; (dartifact->alist
;; (car (get-dartifacts db #f 0 #f))
;; '((foods (fruit . f)
;; (meat . m)))))
;; => "beef"
;;
;; NOTE: We call artifacts "arfs"
(module artifacts
(
;; cards, util and misc
;; sort-cards
;; calc-sha1
;;
;; low-level constructor procs, exposed only for development/testing, will be removed
|
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
dartifacts->alists ;; apply dartifact->alist to a list of alists using a artifact-spec
alist->artifact ;; returns two values uuid, artifact
get-value ;; looks up a value given a key in a dartifact
flatten-all ;; merge the list of values from a query which includes a artifact into a flat alist <== really useful!
check-artifact
;; artifact alists
write-alist->artifact
read-artifact->alist
;; archive database
;; archive-open-db
;; write-archive-artifacts
;; archive-artifacts
|
>
|
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
dartifacts->alists ;; apply dartifact->alist to a list of alists using a artifact-spec
alist->artifact ;; returns two values uuid, artifact
get-value ;; looks up a value given a key in a dartifact
flatten-all ;; merge the list of values from a query which includes a artifact into a flat alist <== really useful!
check-artifact
;; artifact alists
get-artifact-fname
write-alist->artifact
read-artifact->alist
;; archive database
;; archive-open-db
;; write-archive-artifacts
;; archive-artifacts
|
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
|
;;======================================================================
;; Read/write packets to files (convience functions)
;;======================================================================
;; write alist to a artifact file
;;
(define (write-alist->artifact targdir dat #!key (artifactspec '())(ptype #f))
(let-values (((uuid artifact)(alist->artifact dat artifactspec ptype: ptype)))
(with-output-to-file (conc targdir "/" uuid ".artifact")
(lambda ()
(print artifact)))
uuid)) ;; return the uuid
;; read artifact into alist
;;
(define (read-artifact->alist artifact-file #!key (artifactspec #f))
|
>
>
>
|
|
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
|
;;======================================================================
;; Read/write packets to files (convience functions)
;;======================================================================
(define (get-artifact-fname targdir uuid)
(conc targdir "/" uuid ".artifact"))
;; write alist to a artifact file
;;
(define (write-alist->artifact targdir dat #!key (artifactspec '())(ptype #f))
(let-values (((uuid artifact)(alist->artifact dat artifactspec ptype: ptype)))
(with-output-to-file (get-artifact-fname targdir uuid)
(lambda ()
(print artifact)))
uuid)) ;; return the uuid
;; read artifact into alist
;;
(define (read-artifact->alist artifact-file #!key (artifactspec #f))
|