utils
utilities in C for microcontrollers
slist.h
Go to the documentation of this file.
1 
6 #ifndef SLIST_H
7 #define SLIST_H
8 
9 #include <stddef.h>
10 #include <stdbool.h>
11 
16 struct slist_element {
19 };
20 
26 int slist_element_init(struct slist_element *element);
27 
34 int slist_element_insert_after(struct slist_element *after, struct slist_element *element);
35 
41 int slist_element_remove_after(struct slist_element *after);
42 
46 struct slist {
49 };
50 
56 int slist_init(struct slist *list);
57 
64 int slist_is_empty(struct slist *list, bool *is_empty);
65 
73 int slist_prepend(struct slist *list, struct slist_element *element);
74 
83 int slist_append(struct slist *list, struct slist_element *element);
84 
93 int slist_remove(struct slist *list, struct slist_element *element);
94 
101 int slist_remove_head(struct slist *list, struct slist_element **element);
102 
109 };
110 
117 int slist_iterator_init(struct slist_iterator *it, struct slist *list);
118 
125 int slist_iterator_next(struct slist_iterator *it, struct slist_element **element);
126 
127 #endif //SLIST_H
int slist_prepend(struct slist *list, struct slist_element *element)
prepends element to list
Definition: slist.c:34
slist state
Definition: slist.h:46
slist element state
Definition: slist.h:16
struct slist_element * next
pointer to next element
Definition: slist.h:18
int slist_remove(struct slist *list, struct slist_element *element)
removes an element from a list
Definition: slist.c:48
slist iterator state
Definition: slist.h:106
struct slist_element * current
pointer to current element
Definition: slist.h:108
int slist_element_remove_after(struct slist_element *after)
removes an element following another
Definition: slist.c:16
int slist_iterator_next(struct slist_iterator *it, struct slist_element **element)
gets the next element from an iterator
Definition: slist.c:74
int slist_is_empty(struct slist *list, bool *is_empty)
checks if a list is empty
Definition: slist.c:28
int slist_append(struct slist *list, struct slist_element *element)
appends an element to a list
Definition: slist.c:39
int slist_remove_head(struct slist *list, struct slist_element **element)
removes the first element from a list
Definition: slist.c:60
int slist_init(struct slist *list)
initialize an slist
Definition: slist.c:23
struct slist_element head
pseudo head element
Definition: slist.h:48
list state
Definition: list.h:63
int slist_element_init(struct slist_element *element)
initialize a slist_element
Definition: slist.c:3
int slist_iterator_init(struct slist_iterator *it, struct slist *list)
initialize a list iterator
Definition: slist.c:68
int slist_element_insert_after(struct slist_element *after, struct slist_element *element)
insert an element after another
Definition: slist.c:9