Login
7 branches 0 tags
Ben (X13/Arch) Fixed some issues that propped up with WolkenWelten b8a938e 4 years ago 103 Commits
nujel / lib / collection / tree.h
#pragma once
#include "../nujel.h"

#define TRE_MAX (1<<17)

extern lTree  lTreeList[TRE_MAX];
extern uint   lTreeMax;
extern uint   lTreeActive;
extern lTree *lTreeFFree;

void   lTreeInit         ();
lTree *lTreeAlloc        ();
lTree *lTreeNew          (const lSymbol *s, lVal *v);
void   lTreeFree         (lTree *t);

lVal  *lTreeGet             (const lTree *t, const lSymbol *s, bool *found);
bool   lTreeHas             (const lTree *t, const lSymbol *s, lVal **value);
void   lTreeInsert          (      lTree *t, const lSymbol *s, lVal *v);
void   lTreeSet             (      lTree *t, const lSymbol *s, lVal *v);

lVal  *lTreeAddToList       (const lTree *t, lVal *v);
lVal  *lTreeAddKeysToList   (const lTree *t, lVal *v);
lVal  *lTreeAddValuesToList (const lTree *t, lVal *v);
lVal  *lTreeToList          (const lTree *t);
lVal  *lTreeKeysToList      (const lTree *t);
lVal  *lTreeValuesToList    (const lTree *t);