29#include <mstdlib/base/m_defs.h>
30#include <mstdlib/base/m_types.h>
31#include <mstdlib/base/m_sort.h>
96typedef void *(*M_list_duplicate_func)(
const void *);
M_list_duplicate_func duplicate_insert
Definition: m_list.h:108
M_sort_compar_t equality
Definition: m_list.h:106
M_list_duplicate_func duplicate_copy
Definition: m_list.h:110
M_list_free_func value_free
Definition: m_list.h:112
M_bool M_list_remove_at(M_list_t *d, size_t idx)
void(* M_list_free_func)(void *)
Definition: m_list.h:100
M_list_t * M_list_duplicate(const M_list_t *d) M_MALLOC
void * M_list_take_first(M_list_t *d)
void M_list_merge(M_list_t **dest, M_list_t *src, M_bool include_duplicates, M_uint32 type) M_FREE(2)
M_list_t * M_list_create(const struct M_list_callbacks *callbacks, M_uint32 flags) M_MALLOC
void M_list_remove_duplicates(M_list_t *d, M_uint32 type)
size_t M_list_count(const M_list_t *d, const void *val, M_uint32 type)
void M_list_change_sorting(M_list_t *d, M_sort_compar_t equality, M_uint32 sorted_flags, void *thunk)
size_t M_list_len(const M_list_t *d)
const void * M_list_at(const M_list_t *d, size_t idx)
void M_list_insert_begin(M_list_t *d)
struct M_list M_list_t
Definition: m_list.h:92
const void * M_list_last(const M_list_t *d)
size_t M_list_replace_val(M_list_t *d, const void *val, const void *new_val, M_uint32 type)
size_t M_list_remove_val(M_list_t *d, const void *val, M_uint32 type)
M_bool M_list_swap(M_list_t *d, size_t idx1, size_t idx2)
const void * M_list_first(const M_list_t *d)
void * M_list_take_last(M_list_t *d)
void *(* M_list_duplicate_func)(const void *)
Definition: m_list.h:96
M_list_flags_t
Definition: m_list.h:118
void * M_list_take_at(M_list_t *d, size_t idx)
M_bool M_list_remove_last(M_list_t *d)
M_bool M_list_index_of(const M_list_t *d, const void *val, M_uint32 type, size_t *idx)
M_bool M_list_remove_first(M_list_t *d)
void M_list_insert_end(M_list_t *d)
M_bool M_list_replace_at(M_list_t *d, const void *val, size_t idx)
M_bool M_list_insert_at(M_list_t *d, const void *val, size_t idx)
M_bool M_list_remove_range(M_list_t *d, size_t start, size_t end)
M_list_match_type_t
Definition: m_list.h:140
M_bool M_list_insert(M_list_t *d, const void *val)
void M_list_destroy(M_list_t *d, M_bool destroy_vals) M_FREE(1)
size_t M_list_insert_idx(const M_list_t *d, const void *val)
@ M_LIST_SET_PTR
Definition: m_list.h:130
@ M_LIST_STABLE
Definition: m_list.h:123
@ M_LIST_NEVERSHRINK
Definition: m_list.h:135
@ M_LIST_SET_VAL
Definition: m_list.h:125
@ M_LIST_SORTED
Definition: m_list.h:120
@ M_LIST_STACK
Definition: m_list.h:124
@ M_LIST_NONE
Definition: m_list.h:119
@ M_LIST_MATCH_PTR
Definition: m_list.h:142
@ M_LIST_MATCH_ALL
Definition: m_list.h:143
@ M_LIST_MATCH_VAL
Definition: m_list.h:141
int(* M_sort_compar_t)(const void *arg1, const void *arg2, void *thunk)
Definition: m_sort.h:78