---
name: "ZyanList_"
section: "3"
platform: "linux"
package: "libzycore-doc"
version: "1.5.2-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ZyanList_"
---

# ZyanList\_(3)

## NAME

ZyanList\_

## SYNOPSIS

`#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**\

## 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

### 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.

## Author

Generated automatically by Doxygen for Zycore from the source code.
