|
Zycore 1.5.0.0
|
#include <List.h>
Public Attributes | |
| ZyanAllocator * | allocator |
| ZyanUSize | size |
| ZyanUSize | element_size |
| ZyanMemberProcedure | destructor |
| ZyanListNode * | head |
| ZyanListNode * | tail |
| void * | buffer |
| ZyanUSize | capacity |
| ZyanListNode * | first_unused |
Defines the ZyanList struct.
All fields in this struct should be considered as "private". Any changes may lead to unexpected behavior.
| ZyanAllocator* ZyanList_::allocator |
The memory allocator.
| void* ZyanList_::buffer |
The data buffer.
Only used for instances created by ZyanListInitCustomBuffer.
| ZyanUSize ZyanList_::capacity |
The data buffer capacity (number of bytes).
Only used for instances created by ZyanListInitCustomBuffer.
| ZyanMemberProcedure ZyanList_::destructor |
The element destructor callback.
| ZyanUSize ZyanList_::element_size |
The size of a single element in bytes.
| ZyanListNode* ZyanList_::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* ZyanList_::head |
The head node.
| ZyanUSize ZyanList_::size |
The current number of elements in the list.
| ZyanListNode* ZyanList_::tail |
The tail node.