php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
avl.h File Reference

Go to the source code of this file.

Data Structures

struct  lexbor_avl_node
 
struct  lexbor_avl
 

Typedefs

typedef struct lexbor_avl lexbor_avl_t
 
typedef struct lexbor_avl_node lexbor_avl_node_t
 
typedef lxb_status_t(* lexbor_avl_node_f) (lexbor_avl_t *avl, lexbor_avl_node_t **root, lexbor_avl_node_t *node, void *ctx)
 

Functions

LXB_API lexbor_avl_tlexbor_avl_create (void)
 
LXB_API lxb_status_t lexbor_avl_init (lexbor_avl_t *avl, size_t chunk_len, size_t struct_size)
 
LXB_API void lexbor_avl_clean (lexbor_avl_t *avl)
 
LXB_API lexbor_avl_tlexbor_avl_destroy (lexbor_avl_t *avl, bool self_destroy)
 
LXB_API lexbor_avl_node_tlexbor_avl_node_make (lexbor_avl_t *avl, size_t type, void *value)
 
LXB_API void lexbor_avl_node_clean (lexbor_avl_node_t *node)
 
LXB_API lexbor_avl_node_tlexbor_avl_node_destroy (lexbor_avl_t *avl, lexbor_avl_node_t *node, bool self_destroy)
 
LXB_API lexbor_avl_node_tlexbor_avl_insert (lexbor_avl_t *avl, lexbor_avl_node_t **scope, size_t type, void *value)
 
LXB_API lexbor_avl_node_tlexbor_avl_search (lexbor_avl_t *avl, lexbor_avl_node_t *scope, size_t type)
 
LXB_API voidlexbor_avl_remove (lexbor_avl_t *avl, lexbor_avl_node_t **scope, size_t type)
 
LXB_API void lexbor_avl_remove_by_node (lexbor_avl_t *avl, lexbor_avl_node_t **root, lexbor_avl_node_t *node)
 
LXB_API lxb_status_t lexbor_avl_foreach (lexbor_avl_t *avl, lexbor_avl_node_t **scope, lexbor_avl_node_f cb, void *ctx)
 
LXB_API void lexbor_avl_foreach_recursion (lexbor_avl_t *avl, lexbor_avl_node_t *scope, lexbor_avl_node_f callback, void *ctx)
 

Typedef Documentation

◆ lexbor_avl_node_f

typedef lxb_status_t(* lexbor_avl_node_f) (lexbor_avl_t *avl, lexbor_avl_node_t **root, lexbor_avl_node_t *node, void *ctx)

Definition at line 21 of file avl.h.

◆ lexbor_avl_node_t

Definition at line 19 of file avl.h.

◆ lexbor_avl_t

typedef struct lexbor_avl lexbor_avl_t

Definition at line 18 of file avl.h.

Function Documentation

◆ lexbor_avl_clean()

LXB_API void lexbor_avl_clean ( lexbor_avl_t * avl)

Definition at line 68 of file avl.c.

◆ lexbor_avl_create()

LXB_API lexbor_avl_t * lexbor_avl_create ( void )

Definition at line 39 of file avl.c.

◆ lexbor_avl_destroy()

LXB_API lexbor_avl_t * lexbor_avl_destroy ( lexbor_avl_t * avl,
bool self_destroy )

Definition at line 76 of file avl.c.

◆ lexbor_avl_foreach()

LXB_API lxb_status_t lexbor_avl_foreach ( lexbor_avl_t * avl,
lexbor_avl_node_t ** scope,
lexbor_avl_node_f cb,
void * ctx )

Definition at line 455 of file avl.c.

◆ lexbor_avl_foreach_recursion()

LXB_API void lexbor_avl_foreach_recursion ( lexbor_avl_t * avl,
lexbor_avl_node_t * scope,
lexbor_avl_node_f callback,
void * ctx )

Definition at line 557 of file avl.c.

◆ lexbor_avl_init()

LXB_API lxb_status_t lexbor_avl_init ( lexbor_avl_t * avl,
size_t chunk_len,
size_t struct_size )

Definition at line 45 of file avl.c.

◆ lexbor_avl_insert()

LXB_API lexbor_avl_node_t * lexbor_avl_insert ( lexbor_avl_t * avl,
lexbor_avl_node_t ** scope,
size_t type,
void * value )

Definition at line 258 of file avl.c.

◆ lexbor_avl_node_clean()

LXB_API void lexbor_avl_node_clean ( lexbor_avl_node_t * node)

Definition at line 105 of file avl.c.

◆ lexbor_avl_node_destroy()

LXB_API lexbor_avl_node_t * lexbor_avl_node_destroy ( lexbor_avl_t * avl,
lexbor_avl_node_t * node,
bool self_destroy )

Definition at line 111 of file avl.c.

◆ lexbor_avl_node_make()

LXB_API lexbor_avl_node_t * lexbor_avl_node_make ( lexbor_avl_t * avl,
size_t type,
void * value )

Definition at line 91 of file avl.c.

◆ lexbor_avl_remove()

LXB_API void * lexbor_avl_remove ( lexbor_avl_t * avl,
lexbor_avl_node_t ** scope,
size_t type )

Definition at line 399 of file avl.c.

◆ lexbor_avl_remove_by_node()

LXB_API void lexbor_avl_remove_by_node ( lexbor_avl_t * avl,
lexbor_avl_node_t ** root,
lexbor_avl_node_t * node )

Definition at line 426 of file avl.c.

◆ lexbor_avl_search()

LXB_API lexbor_avl_node_t * lexbor_avl_search ( lexbor_avl_t * avl,
lexbor_avl_node_t * scope,
size_t type )

Definition at line 437 of file avl.c.