X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Fplist.h;h=b4187a4c035eba3e191f14d0445b56c470adc950;hp=7c84a868bfbb94ed256915d81654662921e2a300;hb=3d77b5b65efb78c1da9485dfde1fcd417066b803;hpb=9bcb1df0786a8193d65949c857baaba2f4296e84 diff --git a/src/plist.h b/src/plist.h index 7c84a86..b4187a4 100644 --- a/src/plist.h +++ b/src/plist.h @@ -32,15 +32,25 @@ typedef void (*psi_plist_dtor)(void *); struct psi_plist *psi_plist_init(void (*dtor)(void *)); struct psi_plist *psi_plist_init_ex(size_t size, void (*dtor)(void *)); +void psi_plist_clean(struct psi_plist *list); void psi_plist_free(struct psi_plist *list); +struct psi_plist *psi_plist_copy(struct psi_plist *list, void (*ctor)(void *)); size_t psi_plist_count(struct psi_plist *list); +void **psi_plist_eles(struct psi_plist *list); struct psi_plist *psi_plist_add(struct psi_plist *list, void *ptr); +struct psi_plist *psi_plist_add_r(struct psi_plist *list, size_t num_eles, void **eles); bool psi_plist_get(struct psi_plist *list, size_t index, void *ptr); bool psi_plist_del(struct psi_plist *list, size_t index, void *ptr); +bool psi_plist_del_r(struct psi_plist *list, size_t offset_start, size_t offset_end, void **eles); +struct psi_plist *psi_plist_ins(struct psi_plist *list, size_t index, void *ptr); +struct psi_plist *psi_plist_ins_r(struct psi_plist *list, size_t offset_start, size_t num_eles, void **eles); + bool psi_plist_shift(struct psi_plist *list, void *ptr); bool psi_plist_pop(struct psi_plist *list, void *ptr); +bool psi_plist_top(struct psi_plist *list, void *ptr); +#define psi_plist_bottom(l, p) psi_plist_get((l), 0, (p)) #include "Zend/zend.h" #include "Zend/zend_sort.h"