|
Zycore 1.5.2
Zyan Core Library for C
|
Defines the ZyanList struct. More...
#include <List.h>
Data Fields | |
| ZyanAllocator * | allocator |
| The memory allocator. | |
| ZyanUSize | size |
| The current number of elements in the list. | |
| ZyanUSize | element_size |
| The size of a single element in bytes. | |
| ZyanMemberProcedure | destructor |
| The element destructor callback. | |
| ZyanListNode * | head |
| The head node. | |
| ZyanListNode * | tail |
| The tail node. | |
| void * | buffer |
| The data buffer. | |
| ZyanUSize | capacity |
| The data buffer capacity (number of bytes). | |
| ZyanListNode * | first_unused |
| The first unused node. | |
Defines the ZyanList struct.
All fields in this struct should be considered as "private". Any changes may lead to unexpected behavior.
| ZyanAllocator* allocator |
The memory allocator.
| void* buffer |
The data buffer.
Only used for instances created by ZyanListInitCustomBuffer.
| ZyanUSize capacity |
The data buffer capacity (number of bytes).
Only used for instances created by ZyanListInitCustomBuffer.
| ZyanMemberProcedure destructor |
The element destructor callback.
| ZyanUSize element_size |
The size of a single element in bytes.
| ZyanListNode* first_unused |
The first unused node.
When removing a node, the first-unused value is updated to point at the removed node and the next node of the removed node will be updated to point at the old first-unused node.
When appending the memory of the first unused-node is recycled to store the new node. The value of the first-unused node is then updated to point at the reused nodes next node.
If the first-unused value is ZYAN_NULL, any new node will be "allocated" behind the tail node (if there is enough space left in the fixed size buffer).
Only used for instances created by ZyanListInitCustomBuffer.
| ZyanListNode* head |
The head node.
| ZyanUSize size |
The current number of elements in the list.
| ZyanListNode* tail |
The tail node.