docs: adding str-list
This commit is contained in:
parent
a49efe7bdc
commit
b0f473fb71
1 changed files with 99 additions and 0 deletions
99
docs/technical/str-list.txt
Normal file
99
docs/technical/str-list.txt
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
String List
|
||||
-----------
|
||||
|
||||
|
||||
Data structures
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
* `struct str_list`
|
||||
+
|
||||
--
|
||||
Structure that holds the list
|
||||
|
||||
`items`::
|
||||
Array of strings in the list
|
||||
|
||||
`nr`::
|
||||
Number of items in the list
|
||||
--
|
||||
|
||||
Functions
|
||||
~~~~~~~~~
|
||||
|
||||
`str_list_init`::
|
||||
|
||||
Initialize the list
|
||||
|
||||
`str_list_create`::
|
||||
|
||||
allocates and initializes a new list.
|
||||
|
||||
`str_list_destroy`::
|
||||
|
||||
deallocates the list. +
|
||||
Returns zero if the list is not empty, non-zero otherwise.
|
||||
|
||||
`str_list_clear`::
|
||||
|
||||
clears the list by calling `free` for every item.
|
||||
|
||||
`str_list_clear_fn`::
|
||||
|
||||
clears the list by calling the callback function 'fn' for every item. +
|
||||
If `NULL` is passed as 'fn' to this function the items are still cleared without any deallocation.
|
||||
|
||||
`str_list_insert`::
|
||||
|
||||
Inserts a new string into the list. The string passed is not copied. +
|
||||
If 'str' exist in the list, a negative value is returned. otherwise the index where 'str' is inserted.
|
||||
|
||||
`str_list_remove`::
|
||||
|
||||
Removes 'str' from the list and returns it.
|
||||
If the string does not exist in the list, `NULL` is returned.
|
||||
|
||||
`str_list_reduce`::
|
||||
|
||||
Removes the last string in the list and returns it. +
|
||||
If the list is empty, `NULL` is returned.
|
||||
|
||||
`str_list_indexof`::
|
||||
|
||||
Returns the index where 'str' is located in the array. +
|
||||
Returns a negative value if 'str' does not exist in the list.
|
||||
|
||||
`str_list_lookup`::
|
||||
|
||||
looks up 'str' in the list and returns it.
|
||||
If 'str' does not exist in the list, `NULL` is returned.
|
||||
|
||||
`str_list_has`::
|
||||
|
||||
Returns non-zero if 'str' exist in the list, zero otherwise.
|
||||
|
||||
`str_list_foreach`::
|
||||
|
||||
Macro to iterate over the list. +
|
||||
Arguments are (in order): 'iterator', 'list'.
|
||||
+
|
||||
----
|
||||
struct str_list *list;
|
||||
char **item;
|
||||
|
||||
str_list_foreach(item, list) {
|
||||
|
||||
printf("%s\n", *item);
|
||||
}
|
||||
----
|
||||
|
||||
`str_list_size`::
|
||||
|
||||
Returns the number of items in the list
|
||||
+
|
||||
NOTE: this function may be implemented as a macro, so don't pass arguments with side-effects
|
||||
|
||||
`str_list_isempty`::
|
||||
|
||||
Returns non zero if the list is empty. zero otherwise.
|
||||
+
|
||||
NOTE: this function may be implemented as a macro, so don't pass arguments with side-effects
|
||||
Reference in a new issue