dmd.backend.dlist
Interface to the C linked list type.
Discussion
List is a complete package of functions to deal with singly linked lists of pointers or integers.
Features:
- Uses mem package.
- Has loop-back tests.
- Each item in the list can have multiple predecessors, enabling different lists to 'share' a common tail.
License
Source:
backend/dlist
.d
-
Declaration
nothrow @nogc list_t
list_next
(list_tlist
);Return Value
pointer to next entry in
list
. -
Declaration
nothrow @nogc inout(void)*
list_ptr
(inout list_tlist
);Return Value
ptr from
list
entry. -
Declaration
nothrow @nogc int
list_data
(list_tlist
);Return Value
integer item from
list
entry. -
Declaration
nothrow @nogc void
list_prependdata
(list_t*plist
, intd
);Prepend integer item to list.
-
Declaration
nothrow @nogc void
list_free
(list_t*plist
, list_free_fpfreeptr
);Free list.
Parameters
list_t*
plist
Pointer to list to free
list_free_fp
freeptr
Pointer to freeing function for the data pointer (use FPNULL if none)
Output: *
plist
isnull
-
Declaration
nothrow @nogc void*
list_subtract
(list_t*plist
, void*ptr
);Remove
ptr
from the list pointed to by *plist
.Output: *
plist
is updated to be the start of the new listReturn Value
null
if *plist
isnull
otherwiseptr
-
Declaration
nothrow @nogc void*
list_pop
(list_t*plist
);Remove first element in list pointed to by *
plist
.Return Value
First element,
null
if *plist
isnull
-
Declaration
nothrow @nogc list_t
list_append
(list_t*plist
, void*ptr
);Append
ptr
to *plist
.Return Value
pointer to list item created.
null
if out of memory -
Declaration
nothrow @nogc list_t
list_prepend
(list_t*plist
, void*ptr
);Prepend
ptr
to *plist
.Return Value
pointer to list item created (which is also the start of the list).
null
if out of memory -
Declaration
nothrow @nogc int
list_nitems
(list_tlist
);Count up and return number of items in
list
.Return Value
of entries in
list
-
Declaration
nothrow @nogc list_t
list_nth
(list_tlist
, intn
);Return Value
nth
list
entry inlist
. -
Declaration
nothrow @nogc int
list_equal
(list_tlist1
, list_tlist2
);Compare two lists.
Return Value
If they have the same ptrs, return 1 else 0.
-
Declaration
nothrow @nogc list_t
list_inlist
(list_tlist
, void*ptr
);Search for
ptr
inlist
.Return Value
If found, return
list
entry that it is, elsenull
. -
Declaration
nothrow @nogc void
list_apply
(list_t*plist
, void function(void*) nothrow @nogcfp
);Apply a function
fp
to each member of a list. -
Declaration
nothrow @nogc list_t
list_reverse
(list_tl
);Reverse a list in place.
-
Declaration
struct
ListRange
;Range for Lists.