# lv_rb_private.h (/api/private/misc/lv_rb_private_h)



<ApiSummary functions="12" enums="1" structs="2" typedefs="4" />

Functions [#functions]

<ApiMember kind="function" name="lv_rb_init" file="private/misc/lv_rb_private.h" line="54" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L54">
  lv_rb_init [#lv_rb_init]

  ```c title=" " lineNumbers=1
  bool lv_rb_init(lv_rb_t *tree, lv_rb_compare_t compare, size_t node_size)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name        | Type                                           |
  | ----------- | ---------------------------------------------- |
  | `tree`      | <ApiLink name="lv_rb_t" display="lv_rb_t *" /> |
  | `compare`   | <ApiLink name="lv_rb_compare_t" />             |
  | `node_size` | `size_t`                                       |
</ApiMember>

<ApiMember kind="function" name="lv_rb_insert" file="private/misc/lv_rb_private.h" line="55" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L55">
  lv_rb_insert [#lv_rb_insert]

  ```c title=" " lineNumbers=1
  lv_rb_node_t * lv_rb_insert(lv_rb_t *tree, void *key)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name   | Type                                           |
  | ------ | ---------------------------------------------- |
  | `tree` | <ApiLink name="lv_rb_t" display="lv_rb_t *" /> |
  | `key`  | `void *`                                       |
</ApiMember>

<ApiMember kind="function" name="lv_rb_find" file="private/misc/lv_rb_private.h" line="56" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L56">
  lv_rb_find [#lv_rb_find]

  ```c title=" " lineNumbers=1
  lv_rb_node_t * lv_rb_find(lv_rb_t *tree, const void *key)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name   | Type                                           |
  | ------ | ---------------------------------------------- |
  | `tree` | <ApiLink name="lv_rb_t" display="lv_rb_t *" /> |
  | `key`  | `const void *`                                 |
</ApiMember>

<ApiMember kind="function" name="lv_rb_remove_node" file="private/misc/lv_rb_private.h" line="57" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L57">
  lv_rb_remove_node [#lv_rb_remove_node]

  ```c title=" " lineNumbers=1
  void * lv_rb_remove_node(lv_rb_t *tree, lv_rb_node_t *node)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name   | Type                                                     |
  | ------ | -------------------------------------------------------- |
  | `tree` | <ApiLink name="lv_rb_t" display="lv_rb_t *" />           |
  | `node` | <ApiLink name="lv_rb_node_t" display="lv_rb_node_t *" /> |
</ApiMember>

<ApiMember kind="function" name="lv_rb_remove" file="private/misc/lv_rb_private.h" line="58" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L58">
  lv_rb_remove [#lv_rb_remove]

  ```c title=" " lineNumbers=1
  void * lv_rb_remove(lv_rb_t *tree, const void *key)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name   | Type                                           |
  | ------ | ---------------------------------------------- |
  | `tree` | <ApiLink name="lv_rb_t" display="lv_rb_t *" /> |
  | `key`  | `const void *`                                 |
</ApiMember>

<ApiMember kind="function" name="lv_rb_drop_node" file="private/misc/lv_rb_private.h" line="59" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L59">
  lv_rb_drop_node [#lv_rb_drop_node]

  ```c title=" " lineNumbers=1
  bool lv_rb_drop_node(lv_rb_t *tree, lv_rb_node_t *node)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name   | Type                                                     |
  | ------ | -------------------------------------------------------- |
  | `tree` | <ApiLink name="lv_rb_t" display="lv_rb_t *" />           |
  | `node` | <ApiLink name="lv_rb_node_t" display="lv_rb_node_t *" /> |
</ApiMember>

<ApiMember kind="function" name="lv_rb_drop" file="private/misc/lv_rb_private.h" line="60" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L60">
  lv_rb_drop [#lv_rb_drop]

  ```c title=" " lineNumbers=1
  bool lv_rb_drop(lv_rb_t *tree, const void *key)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name   | Type                                           |
  | ------ | ---------------------------------------------- |
  | `tree` | <ApiLink name="lv_rb_t" display="lv_rb_t *" /> |
  | `key`  | `const void *`                                 |
</ApiMember>

<ApiMember kind="function" name="lv_rb_minimum" file="private/misc/lv_rb_private.h" line="61" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L61">
  lv_rb_minimum [#lv_rb_minimum]

  ```c title=" " lineNumbers=1
  lv_rb_node_t * lv_rb_minimum(lv_rb_t *node)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name   | Type                                           |
  | ------ | ---------------------------------------------- |
  | `node` | <ApiLink name="lv_rb_t" display="lv_rb_t *" /> |
</ApiMember>

<ApiMember kind="function" name="lv_rb_maximum" file="private/misc/lv_rb_private.h" line="62" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L62">
  lv_rb_maximum [#lv_rb_maximum]

  ```c title=" " lineNumbers=1
  lv_rb_node_t * lv_rb_maximum(lv_rb_t *node)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name   | Type                                           |
  | ------ | ---------------------------------------------- |
  | `node` | <ApiLink name="lv_rb_t" display="lv_rb_t *" /> |
</ApiMember>

<ApiMember kind="function" name="lv_rb_minimum_from" file="private/misc/lv_rb_private.h" line="63" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L63">
  lv_rb_minimum_from [#lv_rb_minimum_from]

  ```c title=" " lineNumbers=1
  lv_rb_node_t * lv_rb_minimum_from(lv_rb_node_t *node)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name   | Type                                                     |
  | ------ | -------------------------------------------------------- |
  | `node` | <ApiLink name="lv_rb_node_t" display="lv_rb_node_t *" /> |
</ApiMember>

<ApiMember kind="function" name="lv_rb_maximum_from" file="private/misc/lv_rb_private.h" line="64" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L64">
  lv_rb_maximum_from [#lv_rb_maximum_from]

  ```c title=" " lineNumbers=1
  lv_rb_node_t * lv_rb_maximum_from(lv_rb_node_t *node)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name   | Type                                                     |
  | ------ | -------------------------------------------------------- |
  | `node` | <ApiLink name="lv_rb_node_t" display="lv_rb_node_t *" /> |
</ApiMember>

<ApiMember kind="function" name="lv_rb_destroy" file="private/misc/lv_rb_private.h" line="65" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L65">
  lv_rb_destroy [#lv_rb_destroy]

  ```c title=" " lineNumbers=1
  void lv_rb_destroy(lv_rb_t *tree)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name   | Type                                           |
  | ------ | ---------------------------------------------- |
  | `tree` | <ApiLink name="lv_rb_t" display="lv_rb_t *" /> |
</ApiMember>

Enums [#enums]

<ApiMember kind="enum" name="lv_rb_color_t" file="private/misc/lv_rb_private.h" line="31" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L31">
  lv_rb_color_t [#lv_rb_color_t]

  | Name                |
  | ------------------- |
  | `LV_RB_COLOR_RED`   |
  | `LV_RB_COLOR_BLACK` |
</ApiMember>

Structs [#structs]

<ApiMember kind="struct" name="_lv_rb_node_t">
  \_lv_rb_node_t [#_lv_rb_node_t]

  | Member   | Type                                                              | Description |
  | -------- | ----------------------------------------------------------------- | ----------- |
  | `parent` | <ApiLink name="_lv_rb_node_t" display="struct _lv_rb_node_t *" /> |             |
  | `left`   | <ApiLink name="_lv_rb_node_t" display="struct _lv_rb_node_t *" /> |             |
  | `right`  | <ApiLink name="_lv_rb_node_t" display="struct _lv_rb_node_t *" /> |             |
  | `color`  | <ApiLink name="lv_rb_color_t" />                                  |             |
  | `data`   | `void *`                                                          |             |
</ApiMember>

<ApiMember kind="struct" name="_lv_rb_t">
  \_lv_rb_t [#_lv_rb_t]

  | Member    | Type                                                     | Description |
  | --------- | -------------------------------------------------------- | ----------- |
  | `root`    | <ApiLink name="lv_rb_node_t" display="lv_rb_node_t *" /> |             |
  | `compare` | <ApiLink name="lv_rb_compare_t" />                       |             |
  | `size`    | `size_t`                                                 |             |
</ApiMember>

Typedefs [#typedefs]

<ApiMember kind="typedef" name="lv_rb_compare_res_t" file="private/misc/lv_rb_private.h" line="27" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L27">
  lv_rb_compare_res_t [#lv_rb_compare_res_t]

  ```c title=" " lineNumbers=1
  typedef int32_t lv_rb_compare_res_t
  ```
</ApiMember>

<ApiMember kind="typedef" name="lv_rb_compare_t" file="private/misc/lv_rb_private.h" line="29" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L29">
  lv_rb_compare_t [#lv_rb_compare_t]

  ```c title=" " lineNumbers=1
  typedef lv_rb_compare_res_t(* lv_rb_compare_t) (const void *a, const void *b)
  ```
</ApiMember>

<TypeUsedBy name="lv_rb_compare_t" count="1">
  * `lv_rb_init` — param `compare`
</TypeUsedBy>

<ApiMember kind="typedef" name="lv_rb_node_t" file="private/misc/lv_rb_private.h" line="42" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L42">
  lv_rb_node_t [#lv_rb_node_t]

  ```c title=" " lineNumbers=1
  typedef struct _lv_rb_node_t lv_rb_node_t
  ```
</ApiMember>

<TypeUsedBy name="lv_rb_node_t" count="4">
  * `lv_rb_remove_node` — param `node`
  * `lv_rb_drop_node` — param `node`
  * `lv_rb_minimum_from` — param `node`
  * `lv_rb_maximum_from` — param `node`
</TypeUsedBy>

<ApiMember kind="typedef" name="lv_rb_t" file="private/misc/lv_rb_private.h" line="48" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/misc/lv_rb_private.h#L48">
  lv_rb_t [#lv_rb_t]

  ```c title=" " lineNumbers=1
  typedef struct _lv_rb_t lv_rb_t
  ```
</ApiMember>

<TypeUsedBy name="lv_rb_t" count="10">
  * `lv_rb_init` — param `tree`
  * `lv_rb_insert` — param `tree`
  * `lv_rb_find` — param `tree`
  * `lv_rb_remove_node` — param `tree`
  * `lv_rb_remove` — param `tree`
  * `lv_rb_drop_node` — param `tree`
  * `lv_rb_drop` — param `tree`
  * `lv_rb_minimum` — param `node`
  * `lv_rb_maximum` — param `node`
  * `lv_rb_destroy` — param `tree`
</TypeUsedBy>

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lvgl_public.h&#x22;]" includedBy="[&#x22;lv_opengl_shader_internal.h&#x22;, &#x22;lvgl_private.h&#x22;]" />
