Loading...
Searching...
No Matches
ZyanList_ Struct Reference

`#include <List.h>`

Collaboration diagram for ZyanList_:
[legend]

## Public Attributes

ZyanAllocator * | allocator
ZyanUSize | size
ZyanUSize | element_size
ZyanMemberProcedure | destructor
ZyanListNode * | head
ZyanListNode * | tail
void * | buffer
ZyanUSize | capacity
ZyanListNode * | first_unused

## Detailed Description

Defines the ZyanList struct.

All fields in this struct should be considered as "private". Any changes may lead to unexpected behavior.

## Member Data Documentation

## allocator

ZyanAllocator* ZyanList_::allocator

The memory allocator.

## buffer

void* ZyanList_::buffer

The data buffer.

Only used for instances created by ZyanListInitCustomBuffer.

## capacity

ZyanUSize ZyanList_::capacity

The data buffer capacity (number of bytes).

Only used for instances created by ZyanListInitCustomBuffer.

## destructor

ZyanMemberProcedure ZyanList_::destructor

The element destructor callback.

## element_size

ZyanUSize ZyanList_::element_size

The size of a single element in bytes.

## first_unused

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.

## head

ZyanListNode* ZyanList_::head

The head node.

## size

ZyanUSize ZyanList_::size

The current number of elements in the list.

## tail

ZyanListNode* ZyanList_::tail

The tail node.

The documentation for this struct was generated from the following file:

- include/Zycore/List.h