]> gitweb.factorcode.org Git - factor.git/blob - extra/forestdb/utils/utils.factor
36a440c92b254413f2d60724e3cc2956a2391dd4
[factor.git] / extra / forestdb / utils / utils.factor
1 ! Copyright (C) 2014 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: assocs continuations forestdb.lib fry io.directories
4 io.files.temp kernel math.parser math.ranges sequences ;
5 IN: forestdb.utils
6
7 : test-db-0 ( -- path ) "0.forestdb.0" temp-file ;
8 : test-db-1 ( -- path ) "1.forestdb.0" temp-file ;
9
10 : with-forestdb-tester ( path quot -- )
11     '[
12         "default" _ with-kvs
13     ] with-forestdb ; inline
14
15 : delete-test-db-0 ( -- ) [ test-db-0 delete-file ] ignore-errors ;
16 : delete-test-db-1 ( -- ) [ test-db-1 delete-file ] ignore-errors ;
17
18 : make-kv-nth ( n -- key val )
19     number>string [ "key" prepend ] [ "val" prepend ] bi ;
20
21 : make-kv-n ( n -- seq )
22     [1,b] [ make-kv-nth ] { } map>assoc ;
23
24 : make-kv-range ( a b -- seq )
25     [a,b] [ make-kv-nth ] { } map>assoc ;
26
27 : set-kv-n ( n -- )
28     make-kv-n [ fdb-set-kv ] assoc-each ;
29
30 : del-kv-n ( n -- )
31     make-kv-n keys [ fdb-del-kv ] each ;
32
33 : set-kv-nth ( n -- )
34     make-kv-nth fdb-set-kv ;
35
36 : set-kv-range ( a b -- )
37     make-kv-range [ fdb-set-kv ] assoc-each ;
38