impl prev/next api

This commit is contained in:
Gregory Burd 2024-03-19 12:37:16 -04:00
parent de415b0d65
commit f0e4c84fab

View file

@ -398,7 +398,7 @@
} \
\
/* -- skip_find_ */ \
int prefix##skip_find_##decl(decl##_t *slist, decl##_node_t *n) \
decl##_node_t *prefix##skip_find_##decl(decl##_t *slist, decl##_node_t *n) \
{ \
((void)slist); /* TODO */ \
((void)n); \
@ -406,7 +406,8 @@
} \
\
/* -- skip_find_gte */ \
int prefix##skip_find_gte_##decl(decl##_t *slist, decl##_node_t *n) \
decl##_node_t *prefix##skip_find_gte_##decl(decl##_t *slist, \
decl##_node_t *n) \
{ \
((void)slist); /* TODO */ \
((void)n); \
@ -414,7 +415,8 @@
} \
\
/* -- skip_find_lte */ \
int prefix##skip_find_lte_##decl(decl##_t *slist, decl##_node_t *n) \
decl##_node_t *prefix##skip_find_lte_##decl(decl##_t *slist, \
decl##_node_t *n) \
{ \
((void)slist); /* TODO */ \
((void)n); \
@ -422,19 +424,25 @@
} \
\
/* -- skip_next_node_ */ \
int prefix##skip_next_node_##decl(decl##_t *slist, decl##_node_t *n) \
decl##_node_t *prefix##skip_next_node_##decl(decl##_t *slist, \
decl##_node_t *n) \
{ \
((void)slist); /* TODO */ \
((void)n); \
return 0; \
if (!slist || !n) \
return NULL; \
if (n->field.sle_next[0] == slist->slh_tail) \
return NULL; \
return n->field.sle_next[0]; \
} \
\
/* -- skip_prev_node_ */ \
int prefix##skip_prev_node_##decl(decl##_t *slist, decl##_node_t *n) \
decl##_node_t *prefix##skip_prev_node_##decl(decl##_t *slist, \
decl##_node_t *n) \
{ \
((void)slist); /* TODO */ \
((void)n); \
return 0; \
if (!slist || !n) \
return NULL; \
if (n->field.sle_prev == slist->slh_head) \
return NULL; \
return n->field.sle_prev; \
} \
\
/* -- skip_destroy_ */ \