egra: agg mini code cleanups
[iv.d.git] / tinycdb_test / cdbtest.d
blobda4ba8920dee0eb74a1e629017c7bc8d9215c662
1 /* Invisible Vector Library
2 * coded by Ketmar // Invisible Vector <ketmar@ketmar.no-ip.org>
3 * Understanding is not required. Only obedience.
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, version 3 of the License ONLY.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 import iv.tinycdb, iv.tinycdbmk;
18 import std.stdio : writeln, writefln;
21 void fi (ref CDB cdb, string key) {
22 writeln("=== ", key, " ===");
23 auto it = cdb.findFirst(key);
24 while (!it.empty) {
25 writeln(" [", cast(const(char)[])it.front, "]");
26 it.popFront();
31 void fk (ref CDB cdb, string key) {
32 auto val = cdb.find(key);
33 if (val !is null) {
34 writeln("[", key, "] = [", cast(const(char)[])val, "]");
35 } else {
36 writeln("[", key, "] = NOT FOUND!");
41 void main () {
42 writefln("0x%08x", CDB.hash("key0"));
44 auto mk = CDBMaker("z.cdb");
45 mk.put("key0", "fuck");
46 mk.put("key1", "ass");
47 mk.put("key0", "shit");
48 mk.put("key1", "piss", mk.PUT_INSERT);
49 mk.put("key3", "urine", mk.PUT_INSERT);
50 if (!mk.close()) assert(0, "CDB WRITE ERROR!");
53 auto cdb = CDB("z.cdb");
54 cdb.fi("key0");
55 cdb.fk("key0");
56 cdb.fk("key1");
57 cdb.fk("key2");
58 cdb.fk("key3");