From f652c23fbc61dec9db48c6e745edca5a12b655bb Mon Sep 17 00:00:00 2001
From: Tucker Evans <tucker@tuckerevans.com>
Date: Mon, 6 Jul 2020 15:36:34 -0400
Subject: Add structs/typedefs for maps

---
 collections/map/map.adoc | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100644 collections/map/map.adoc

(limited to 'collections/map/map.adoc')

diff --git a/collections/map/map.adoc b/collections/map/map.adoc
new file mode 100644
index 0000000..a43ae1d
--- /dev/null
+++ b/collections/map/map.adoc
@@ -0,0 +1,32 @@
+Map
+===
+Tucker Evans
+v0.0, 2020-07-06
+
+A basic map implemented in an AVL tree.
+
+NOTE: Keys are passed as void pointers and their data is not copied (this
+should be handled by the user), they should not be freed without clearing the
+map.
+
+NOTE: There is currently no way to distinquish between a failed retrieval
+(pop, index, back, etc.) and returning a NULL value. Keep this in mind if
+you plan on storing NULL values in the vector, there are plans to fix this in
+the future.
+
+Types
+----
+The following types are defined in the header file:
+[[map]]
++map+
+~~~~~
+This structure holds all internal information regarding a map.
+All functions (except constructors) expect a pointer to this struct as their
+first parameter.
+
+[[cmp_func]]
++cmp_func+
+~~~~~~~~~~~
+This is a pointer to a function that to compare keys from pointers. This
+typedef is provided to cast comparison functions as a map expects the
+comparison function to take void* as its parameters.
-- 
cgit v1.1

