Zycore 1.4.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.