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
*.dep
/*.bak
+13
View File
@@ -7,6 +7,7 @@
)
(provide ks-open
ks-close
ks-set!
ks-get
ks-drop!
@@ -24,6 +25,12 @@
#:transparent
)
(define keystore*? keystore?)
(set! keystore? (λ (ks)
(and (keystore*? ks)
(connection? (keystore-dbh ks))
(connected? (keystore-dbh ks)))))
(define/contract (ks-open file)
(-> (or/c path? string? symbol?) keystore?)
(let ((path (if (symbol? file)
@@ -34,6 +41,12 @@
(query-exec dbh "CREATE INDEX IF NOT EXISTS keystore_idx on keystore(str_key);")
(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)
(-> keystore? any/c any/c boolean?)
(ks-set!* (keystore-dbh ksh) (value->string key) (format "~a" key) (value->string value)))