Files
keystore/class.rkt
2026-04-17 16:33:13 +02:00

55 lines
1001 B
Racket

#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))
)
)