summaryrefslogtreecommitdiffhomepage
path: root/docs/clist_api.md
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2022-10-31 07:39:44 +0100
committerTyge Løvset <[email protected]>2022-10-31 07:39:44 +0100
commitc73af10e4025e5fc9956d868c8682c08f323bfc6 (patch)
tree2524abf81714a82ac080c00cc7f896b07a55c39e /docs/clist_api.md
parent5dc427bd34ba781defba960c2c690bd015416732 (diff)
downloadSTC-modified-c73af10e4025e5fc9956d868c8682c08f323bfc6.tar.gz
STC-modified-c73af10e4025e5fc9956d868c8682c08f323bfc6.zip
Added clist_X_reverse() and node API functions ++. NB! needs a bit more testing.
Diffstat (limited to 'docs/clist_api.md')
-rw-r--r--docs/clist_api.md18
1 files changed, 12 insertions, 6 deletions
diff --git a/docs/clist_api.md b/docs/clist_api.md
index 7e2b9c58..0d20941a 100644
--- a/docs/clist_api.md
+++ b/docs/clist_api.md
@@ -48,24 +48,24 @@ void clist_X_drop(clist_X* self);
bool clist_X_empty(const clist_X* list);
size_t clist_X_count(const clist_X* list); // size() in O(n) time
-clist_X_value* clist_X_front(const clist_X* self);
clist_X_value* clist_X_back(const clist_X* self);
-
-void clist_X_push_front(clist_X* self, i_val value);
-void clist_X_emplace_front(clist_X* self, i_valraw raw);
-void clist_X_pop_front(clist_X* self);
+clist_X_value* clist_X_front(const clist_X* self);
void clist_X_push_back(clist_X* self, i_val value); // note: no pop_back()
+void clist_X_push_front(clist_X* self, i_val value);
void clist_X_push(clist_X* self, i_val value); // alias for push_back()
+
void clist_X_emplace_back(clist_X* self, i_valraw raw);
+void clist_X_emplace_front(clist_X* self, i_valraw raw);
void clist_X_emplace(clist_X* self, i_valraw raw); // alias for emplace_back()
clist_X_iter clist_X_insert_at(clist_X* self, clist_X_iter it, i_val value); // return iter to new elem
clist_X_iter clist_X_emplace_at(clist_X* self, clist_X_iter it, i_valraw raw);
+void clist_X_pop_front(clist_X* self);
clist_X_iter clist_X_erase_at(clist_X* self, clist_X_iter it); // return iter after it
clist_X_iter clist_X_erase_range(clist_X* self, clist_X_iter it1, clist_X_iter it2);
-size_t clist_X_remove(clist_X* self, i_valraw raw); // removes matching elements
+size_t clist_X_remove(clist_X* self, i_valraw raw); // removes all matches
clist_X clist_X_split_off(clist_X* self, clist_X_iter i1, clist_X_iter i2); // split off [i1, i2)
clist_X_iter clist_X_splice(clist_X* self, clist_X_iter it, clist_X* other); // return updated valid it
@@ -78,6 +78,12 @@ const i_val* clist_X_get(const clist_X* self, i_valraw val);
i_val* clist_X_get_mut(clist_X* self, i_valraw val);
void clist_X_sort(clist_X* self);
+void clist_X_reverse(clist_X* self);
+// Node API
+clist_X_value* clist_X_push_node_back(clist_X* self, clist_X_node* node);
+clist_X_value* clist_X_insert_node_after(clist_X* self, clist_X_node* ref, clist_X_node* node);
+clist_X_node* clist_X_unlink_node_after(clist_X* self, clist_X_node* ref); // return unlinked
+void clist_X_erase_node_after(clist_X* self, clist_X_node* node);
clist_X_iter clist_X_begin(const clist_X* self);
clist_X_iter clist_X_end(const clist_X* self);