ks-close added.

This commit is contained in:
2026-06-28 23:20:34 +02:00
parent b0e49ab6d1
commit 93592fbf28
2 changed files with 14 additions and 0 deletions
+1
View File
@@ -15,3 +15,4 @@ compiled/
# Dependency tracking files # Dependency tracking files
*.dep *.dep
/*.bak
+13
View File
@@ -7,6 +7,7 @@
) )
(provide ks-open (provide ks-open
ks-close
ks-set! ks-set!
ks-get ks-get
ks-drop! ks-drop!
@@ -24,6 +25,12 @@
#:transparent #:transparent
) )
(define keystore*? keystore?)
(set! keystore? (λ (ks)
(and (keystore*? ks)
(connection? (keystore-dbh ks))
(connected? (keystore-dbh ks)))))
(define/contract (ks-open file) (define/contract (ks-open file)
(-> (or/c path? string? symbol?) keystore?) (-> (or/c path? string? symbol?) keystore?)
(let ((path (if (symbol? file) (let ((path (if (symbol? file)
@@ -34,6 +41,12 @@
(query-exec dbh "CREATE INDEX IF NOT EXISTS keystore_idx on keystore(str_key);") (query-exec dbh "CREATE INDEX IF NOT EXISTS keystore_idx on keystore(str_key);")
(make-keystore file path dbh)))) (make-keystore file path dbh))))
(define/contract (ks-close ksh)
(-> keystore? boolean?)
(let ((dbh (keystore-dbh ksh)))
(disconnect dbh)
#t))
(define/contract (ks-set! ksh key value) (define/contract (ks-set! ksh key value)
(-> keystore? any/c any/c boolean?) (-> keystore? any/c any/c boolean?)
(ks-set!* (keystore-dbh ksh) (value->string key) (format "~a" key) (value->string value))) (ks-set!* (keystore-dbh ksh) (value->string key) (format "~a" key) (value->string value)))