| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #pragma once
- #include <furi.h>
- struct ListItem;
- typedef struct ListItem {
- void* data;
- struct ListItem* next;
- struct ListItem* prev;
- } ListItem;
- typedef struct {
- ListItem* head;
- ListItem* tail;
- size_t count;
- } List;
- List* list_make();
- //frees everything
- void list_free(List* list);
- //clears the list, but not data
- void list_clear(List* list);
- //clears the list, and data
- void list_free_data(List* list);
- void list_push_back(void* data, List* list);
- void list_push_front(void* data, List* list);
- void* list_pop_back(List* list);
- void* list_pop_front(List* list);
- void* list_pop_at(size_t index, List* list);
- void list_remove_item(void* data, List* list);
- void list_remove_at(size_t index, List* list);
- List* list_splice(size_t index, size_t count, List* list);
- void* list_peek_front(List* list);
- void* list_peek_index(List* list, size_t index);
- ListItem* list_get_index(List* list, size_t index);
- void* list_peek_back(List* list);
|