This commit is contained in:
2026-04-17 16:33:13 +02:00
parent 61e3e255ea
commit 3c51066fad
17 changed files with 3490 additions and 0 deletions

54
class.rkt Normal file
View File

@@ -0,0 +1,54 @@
#lang racket/base
(require "keystore.rkt"
racket/class
)
(provide keystore%)
(define keystore%
(class object%
(init-field
[file (error "provide a filename using a path, string or use a symbol")]
)
(super-new)
(define ksh (ks-open file))
(define/public (handle)
ksh)
(define/public (set! key val)
(ks-set! ksh key val)
this)
(define/public (get key . default-val)
(if (null? default-val)
(ks-get ksh key)
(ks-get ksh key (car default-val))))
(define/public (drop! key)
(ks-drop! ksh key)
this)
(define/public (exists? key)
(ks-exists? ksh key))
(define/public (glob gl)
(ks-keys-glob ksh gl))
(define/public (glob-kv gl)
(ks-key-values-glob ksh gl))
(define/public (keys-glob gl)
(ks-keys-glob ksh gl))
(define/public (keys)
(ks-keys ksh))
(define/public (key-values)
(ks-key-values ksh))
)
)