This commit is contained in:
~hatteb-mitlyd 2014-05-07 11:34:36 -07:00
parent 44dfc2118a
commit 65e621150f

View File

@ -2,10 +2,40 @@
** **
** This file is in the public domain. ** This file is in the public domain.
*/ */
struct u2_nash;
struct u2_nash* u2_na_make(); /** Hash-table design:
void u2_na_put(struct u2_nash* nash, u2_noun key, u2_noun val); ***
u2_weak u2_na_get(struct u2_nash* nash, u2_noun key); *** u2_nash is a non-noun hash-table, meant for ephemeral usage such as
void u2_na_take(struct u2_nash* nash); *** in jam and cue.
***
*** It uses a Patricia trie keyed on the mug of the actual key, and then
*** a vector of key-value pairs to resolve collisions.
**/
/* Opaque structure holding hash table.
*/
struct u2_nash;
/* Functions
*/
/* u2_na_make(): create a new nash.
*/
struct u2_nash*
u2_na_make();
/* u2_na_put(): put an entry in the hash table.
*/
void
u2_na_put(struct u2_nash* nash, u2_noun key, u2_noun val);
/* u2_na_get(): retrieve an entry from the hash table, or u2_none.
*/
u2_weak
u2_na_get(struct u2_nash* nash, u2_noun key);
/* u2_na_take(): destroy a nash.
*/
void
u2_na_take(struct u2_nash* nash);