# lv_rb.h (/api/misc/lv_rb_h)



<RelatedHeaders name="lv_rb_private.h" isPrivate="false" />

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

Functions [#functions]

<ApiMember kind="function" name="lv_rb_init" file="misc/lv_rb.h" line="41" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_rb.h#L41">
  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` | <ApiLink name="size_t" />                      |
</ApiMember>

<ApiMember kind="function" name="lv_rb_insert" file="misc/lv_rb.h" line="42" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_rb.h#L42">
  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="misc/lv_rb.h" line="43" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_rb.h#L43">
  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="misc/lv_rb.h" line="44" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_rb.h#L44">
  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="misc/lv_rb.h" line="45" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_rb.h#L45">
  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="misc/lv_rb.h" line="46" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_rb.h#L46">
  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="misc/lv_rb.h" line="47" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_rb.h#L47">
  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="misc/lv_rb.h" line="48" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_rb.h#L48">
  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="misc/lv_rb.h" line="49" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_rb.h#L49">
  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="misc/lv_rb.h" line="50" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_rb.h#L50">
  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="misc/lv_rb.h" line="51" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_rb.h#L51">
  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="misc/lv_rb.h" line="52" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_rb.h#L52">
  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="misc/lv_rb.h" line="28" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_rb.h#L28">
  lv_rb_color_t [#lv_rb_color_t]

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

Typedefs [#typedefs]

<ApiMember kind="typedef" name="lv_rb_compare_res_t" file="misc/lv_rb.h" line="33" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_rb.h#L33">
  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="misc/lv_rb.h" line="35" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_rb.h#L35">
  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>

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lv_types.h&#x22;, &#x22;lv_assert.h&#x22;]" includedBy="[&#x22;lv_rb_private.h&#x22;]" transitiveIncludes="[&#x22;lv_conf_internal.h&#x22;, &#x22;lv_conf_kconfig.h&#x22;, &#x22;lv_log.h&#x22;, &#x22;lv_mem.h&#x22;, &#x22;lv_string.h&#x22;]" />
