summaryrefslogtreecommitdiff
path: root/docs/application/name.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/application/name.md')
-rw-r--r--docs/application/name.md27
1 files changed, 24 insertions, 3 deletions
diff --git a/docs/application/name.md b/docs/application/name.md
index 3c00aa0..d605b81 100644
--- a/docs/application/name.md
+++ b/docs/application/name.md
@@ -7,8 +7,29 @@ Each word representing a var, symbol or type gets an `NAME_IDENTIFIER` -> `kpl_n
## Object Definitions
```c
-typedef struct _kpl_name {
- KPL_ALLOC_TREE_HEADER(struct _kpl_name);
- char c_str[];
+#define KPL_LETTER_COUNT 26
+
+#define KPL_NAME_COUNT 43
+
+#define KPL_NAME_SIZE 44
+
+typedef struct {
+ kpl_ptr underscore, lowercase[KPL_LETTER_COUNT], uppercase[KPL_LETTER_COUNT];
+ char name[KPL_NAME_SIZE];
+} kpl_name_node;
+
+typedef strcut {
+ kpl_name_node array[UINT16_MAX];
+} kpl_name_array;
+
+typedef strcut {
+ uint16_t slab_index, array_index;
+ kpl_mutex mutex;
+ kpl_ptr root;
+ kpl_name_array *slab[UINT16_MAX];
} kpl_name;
```
+
+## Usage
+
+The only operation into the trie is a findsert with a pointer to a string and its length, returning a pointer to the found or inserted node