forked from github/server
75 lines
1.4 KiB
C
75 lines
1.4 KiB
C
#include "quicklist.h"
|
|
#include <stdlib.h>
|
|
|
|
void ql_push(struct quicklist **qlp, void *el)
|
|
{
|
|
selist_push(qlp, el);
|
|
}
|
|
|
|
int ql_length(const struct quicklist *ql)
|
|
{
|
|
return selist_length(ql);
|
|
}
|
|
|
|
void * ql_replace(struct quicklist *ql, int index, void *el)
|
|
{
|
|
return selist_replace(ql, index, el);
|
|
}
|
|
|
|
void *ql_get(struct quicklist *ql, int index)
|
|
{
|
|
return selist_get(ql, index);
|
|
}
|
|
|
|
int ql_delete(struct quicklist **qlp, int index)
|
|
{
|
|
return selist_delete(qlp, index);
|
|
}
|
|
|
|
bool ql_empty(const struct quicklist *ql)
|
|
{
|
|
return selist_empty(ql);
|
|
}
|
|
|
|
void ql_foreach(struct quicklist *ql, selist_cb cb)
|
|
{
|
|
selist_foreach(ql, cb);
|
|
}
|
|
|
|
int ql_advance(struct quicklist **qlp, int *index, int stride)
|
|
{
|
|
return selist_advance(qlp, index, stride);
|
|
}
|
|
|
|
void ql_free(struct quicklist *ql)
|
|
{
|
|
selist_free(ql);
|
|
}
|
|
|
|
bool ql_set_remove(struct quicklist **qlp, const void *data)
|
|
{
|
|
int qi, qn;
|
|
quicklist *ql = *qlp;
|
|
|
|
if (!ql)
|
|
return false;
|
|
|
|
qn = selist_length(ql);
|
|
for (qi = 0; qi != qn; ++qi) {
|
|
void *qd = selist_get(ql, qi);
|
|
if (qd == data) {
|
|
return selist_delete(qlp, qi) == 0;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool ql_set_insert(struct quicklist **qlp, void *data)
|
|
{
|
|
return selist_set_insert(qlp, data, NULL);
|
|
}
|
|
|
|
bool ql_set_find(struct quicklist **qlp, int *qip, const void *data)
|
|
{
|
|
return selist_set_find(qlp, qip, data, NULL);
|
|
}
|