From 65e621150f8e6c261f6736112e98f748ae9c0659 Mon Sep 17 00:00:00 2001 From: ~hatteb-mitlyd Date: Wed, 7 May 2014 11:34:36 -0700 Subject: [PATCH] style --- include/f/nash.h | 40 +++++++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/include/f/nash.h b/include/f/nash.h index ff4bf20f83..c63813be31 100644 --- a/include/f/nash.h +++ b/include/f/nash.h @@ -2,10 +2,40 @@ ** ** This file is in the public domain. */ -struct u2_nash; -struct u2_nash* u2_na_make(); -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); -void u2_na_take(struct u2_nash* nash); +/** Hash-table design: +*** +*** u2_nash is a non-noun hash-table, meant for ephemeral usage such as +*** 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);