php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
bst.h File Reference
#include <string.h>
#include "lexbor/core/base.h"
#include "lexbor/core/dobject.h"

Go to the source code of this file.

Data Structures

struct  lexbor_bst_entry
 
struct  lexbor_bst
 

Macros

#define lexbor_bst_root(bst)
 
#define lexbor_bst_root_ref(bst)
 

Typedefs

typedef struct lexbor_bst_entry lexbor_bst_entry_t
 
typedef struct lexbor_bst lexbor_bst_t
 
typedef bool(* lexbor_bst_entry_f) (lexbor_bst_t *bst, lexbor_bst_entry_t *entry, void *ctx)
 

Functions

LXB_API lexbor_bst_tlexbor_bst_create (void)
 
LXB_API lxb_status_t lexbor_bst_init (lexbor_bst_t *bst, size_t size)
 
LXB_API void lexbor_bst_clean (lexbor_bst_t *bst)
 
LXB_API lexbor_bst_tlexbor_bst_destroy (lexbor_bst_t *bst, bool self_destroy)
 
LXB_API lexbor_bst_entry_tlexbor_bst_entry_make (lexbor_bst_t *bst, size_t size)
 
LXB_API lexbor_bst_entry_tlexbor_bst_insert (lexbor_bst_t *bst, lexbor_bst_entry_t **scope, size_t size, void *value)
 
LXB_API lexbor_bst_entry_tlexbor_bst_insert_not_exists (lexbor_bst_t *bst, lexbor_bst_entry_t **scope, size_t size)
 
LXB_API lexbor_bst_entry_tlexbor_bst_search (lexbor_bst_t *bst, lexbor_bst_entry_t *scope, size_t size)
 
LXB_API lexbor_bst_entry_tlexbor_bst_search_close (lexbor_bst_t *bst, lexbor_bst_entry_t *scope, size_t size)
 
LXB_API voidlexbor_bst_remove (lexbor_bst_t *bst, lexbor_bst_entry_t **root, size_t size)
 
LXB_API voidlexbor_bst_remove_close (lexbor_bst_t *bst, lexbor_bst_entry_t **root, size_t size, size_t *found_size)
 
LXB_API voidlexbor_bst_remove_by_pointer (lexbor_bst_t *bst, lexbor_bst_entry_t *entry, lexbor_bst_entry_t **root)
 
LXB_API void lexbor_bst_serialize (lexbor_bst_t *bst, lexbor_callback_f callback, void *ctx)
 
LXB_API void lexbor_bst_serialize_entry (lexbor_bst_entry_t *entry, lexbor_callback_f callback, void *ctx, size_t tabs)
 

Macro Definition Documentation

◆ lexbor_bst_root

#define lexbor_bst_root ( bst)
Value:
(bst)->root

Definition at line 20 of file bst.h.

◆ lexbor_bst_root_ref

#define lexbor_bst_root_ref ( bst)
Value:
&((bst)->root)

Definition at line 21 of file bst.h.

Typedef Documentation

◆ lexbor_bst_entry_f

typedef bool(* lexbor_bst_entry_f) (lexbor_bst_t *bst, lexbor_bst_entry_t *entry, void *ctx)

Definition at line 27 of file bst.h.

◆ lexbor_bst_entry_t

Definition at line 24 of file bst.h.

◆ lexbor_bst_t

typedef struct lexbor_bst lexbor_bst_t

Definition at line 25 of file bst.h.

Function Documentation

◆ lexbor_bst_clean()

LXB_API void lexbor_bst_clean ( lexbor_bst_t * bst)

Definition at line 44 of file bst.c.

◆ lexbor_bst_create()

LXB_API lexbor_bst_t * lexbor_bst_create ( void )

Definition at line 12 of file bst.c.

◆ lexbor_bst_destroy()

LXB_API lexbor_bst_t * lexbor_bst_destroy ( lexbor_bst_t * bst,
bool self_destroy )

Definition at line 55 of file bst.c.

◆ lexbor_bst_entry_make()

LXB_API lexbor_bst_entry_t * lexbor_bst_entry_make ( lexbor_bst_t * bst,
size_t size )

Definition at line 71 of file bst.c.

◆ lexbor_bst_init()

LXB_API lxb_status_t lexbor_bst_init ( lexbor_bst_t * bst,
size_t size )

Definition at line 18 of file bst.c.

◆ lexbor_bst_insert()

LXB_API lexbor_bst_entry_t * lexbor_bst_insert ( lexbor_bst_t * bst,
lexbor_bst_entry_t ** scope,
size_t size,
void * value )

Definition at line 86 of file bst.c.

◆ lexbor_bst_insert_not_exists()

LXB_API lexbor_bst_entry_t * lexbor_bst_insert_not_exists ( lexbor_bst_t * bst,
lexbor_bst_entry_t ** scope,
size_t size )

Definition at line 145 of file bst.c.

◆ lexbor_bst_remove()

LXB_API void * lexbor_bst_remove ( lexbor_bst_t * bst,
lexbor_bst_entry_t ** root,
size_t size )

Definition at line 228 of file bst.c.

◆ lexbor_bst_remove_by_pointer()

LXB_API void * lexbor_bst_remove_by_pointer ( lexbor_bst_t * bst,
lexbor_bst_entry_t * entry,
lexbor_bst_entry_t ** root )

Definition at line 287 of file bst.c.

◆ lexbor_bst_remove_close()

LXB_API void * lexbor_bst_remove_close ( lexbor_bst_t * bst,
lexbor_bst_entry_t ** root,
size_t size,
size_t * found_size )

Definition at line 248 of file bst.c.

◆ lexbor_bst_search()

LXB_API lexbor_bst_entry_t * lexbor_bst_search ( lexbor_bst_t * bst,
lexbor_bst_entry_t * scope,
size_t size )

Definition at line 188 of file bst.c.

◆ lexbor_bst_search_close()

LXB_API lexbor_bst_entry_t * lexbor_bst_search_close ( lexbor_bst_t * bst,
lexbor_bst_entry_t * scope,
size_t size )

Definition at line 206 of file bst.c.

◆ lexbor_bst_serialize()

LXB_API void lexbor_bst_serialize ( lexbor_bst_t * bst,
lexbor_callback_f callback,
void * ctx )

Definition at line 408 of file bst.c.

◆ lexbor_bst_serialize_entry()

LXB_API void lexbor_bst_serialize_entry ( lexbor_bst_entry_t * entry,
lexbor_callback_f callback,
void * ctx,
size_t tabs )

Definition at line 414 of file bst.c.