/*
    Marco's Chess: WebAssembly build of Sjeng, stand-in for macOS <ndbm.h>.
    Copyright (C) 2026 Marco Seman. Licensed GPL-3.0-or-later; see ../../LICENSE.

    Apple's Sjeng keeps its large "BinBook" opening book in an ndbm database.
    The browser build has no ndbm, so dbm_open() always fails, which Sjeng
    already handles as "No BinBook found" (it then uses its .opn books).
*/
#ifndef SJENG_WASM_NDBM_H
#define SJENG_WASM_NDBM_H
#include <fcntl.h>

typedef struct { void *dptr; int dsize; } datum;
typedef struct sjeng_wasm_dbm DBM;

DBM *dbm_open(const char *file, int flags, int mode);
void dbm_close(DBM *db);
datum dbm_fetch(DBM *db, datum key);
int dbm_store(DBM *db, datum key, datum content, int mode);
datum dbm_firstkey(DBM *db);
datum dbm_nextkey(DBM *db);
int dbm_delete(DBM *db, datum key);

#define DBM_INSERT 0
#define DBM_REPLACE 1
#endif
