Yume Project 3.0
Touhou-inspired Danmaku game made in C only
Chargement...
Recherche...
Aucune correspondance
Référence du fichier list.h
#include "dynarray.h"

Aller au code source de ce fichier.

Classes

struct  ListInterface
struct  List
struct  ListAnchorInterface
struct  ListAnchor
struct  ListContainer

Macros

#define LIST_INTERFACE_BASE(type)
#define LIST_INTERFACE(type)
#define LIST_ANCHOR_INTERFACE_BASE(type)
#define LIST_ANCHOR_INTERFACE(type)
#define LIST_ANCHOR(type)
#define LIST_CAST(expr)
#define LIST_CAST_2(expr)
#define LIST_ANCHOR_CAST(expr)
#define LIST_CAST_RETURN(typekey, e_return)
#define list_insert(dest, elem)
#define alist_insert(list, ref, elem)
#define list_push(dest, elem)
#define alist_push(list, elem)
#define list_append(dest, elem)
#define alist_append(list, elem)
#define list_unlink(dest, elem)
#define alist_unlink(list, elem)
#define list_pop(dest)
#define alist_pop(list)
#define alist_merge_tail(dst, src)

Définitions de type

typedef struct ListInterface ListInterface
typedef struct List List
typedef struct ListAnchorInterface ListAnchorInterface
typedef struct ListAnchor ListAnchor
typedef struct ListContainer ListContainer

Fonctions

Listlist_insert (List **dest, List *elem)
 Insere elem apres dest.
Listlist_push (List **dest, List *elem)
 Insere elem en tête de dest. *dest pointe sur la nouvelle tete.
Listlist_append (List **dest, List *elem)
 Insere elem a la fin de dest.
Listlist_unlink (List **dest, List *elem)
 Detache elem de dest.
Listlist_pop (List **list)
 Retire de list son premier element.
Listalist_insert (ListAnchor *list, List *ref, List *elem)
 Insere elem apres ref, un element de list.
Listalist_push (ListAnchor *list, List *elem)
 Insere elem en tête de list (avant list->first).
Listalist_append (ListAnchor *list, List *elem)
 Insere elem a la fin de list (apres list->last).
Listalist_unlink (ListAnchor *list, List *elem)
 Detache elem de list.
Listalist_pop (ListAnchor *list)
 Retire le premier element de list.
void alist_merge_tail (ListAnchor *dst, ListAnchor *src)
 Accroche src a la fin de dest.

Documentation des macros

◆ alist_append

#define alist_append ( list,
elem )
Valeur :
#define LIST_CAST_RETURN(typekey, e_return)
Definition list.h:167
#define LIST_CAST(expr)
Definition list.h:164
#define alist_append(list, elem)
Definition list.h:188
#define LIST_ANCHOR_CAST(expr)
Definition list.h:166

◆ alist_insert

#define alist_insert ( list,
ref,
elem )
Valeur :
#define alist_insert(list, ref, elem)
Definition list.h:176

◆ alist_merge_tail

#define alist_merge_tail ( dst,
src )
Valeur :
#define alist_merge_tail(dst, src)
Definition list.h:203

◆ alist_pop

#define alist_pop ( list)
Valeur :
#define alist_pop(list)
Definition list.h:200

◆ alist_push

#define alist_push ( list,
elem )
Valeur :
#define alist_push(list, elem)
Definition list.h:182

◆ alist_unlink

#define alist_unlink ( list,
elem )
Valeur :
#define alist_unlink(list, elem)
Definition list.h:194

◆ LIST_ANCHOR

#define LIST_ANCHOR ( type)
Valeur :
struct { \
LIST_ANCHOR_INTERFACE(type); \
}

◆ LIST_ANCHOR_CAST

#define LIST_ANCHOR_CAST ( expr)
Valeur :
(ListAnchor *)(expr)
Definition list.h:46

◆ LIST_ANCHOR_INTERFACE

#define LIST_ANCHOR_INTERFACE ( type)
Valeur :
union { \
ListAnchorInterface list_anchor_interface; \
LIST_ANCHOR_INTERFACE_BASE(type); \
}
Definition list.h:42

◆ LIST_ANCHOR_INTERFACE_BASE

#define LIST_ANCHOR_INTERFACE_BASE ( type)
Valeur :
struct { \
type *first; \
type *last; \
}

◆ list_append

#define list_append ( dest,
elem )
Valeur :
#define LIST_CAST_2(expr)
Definition list.h:165
#define list_append(dest, elem)
Definition list.h:185

◆ LIST_CAST

#define LIST_CAST ( expr)
Valeur :
(List *)(expr)
Definition list.h:24

◆ LIST_CAST_2

#define LIST_CAST_2 ( expr)
Valeur :
(List **)(expr)

◆ LIST_CAST_RETURN

#define LIST_CAST_RETURN ( typekey,
e_return )
Valeur :
(__typeof__(*(typekey)) *)(e_return)

◆ list_insert

#define list_insert ( dest,
elem )
Valeur :
#define list_insert(dest, elem)
Definition list.h:173

◆ LIST_INTERFACE

#define LIST_INTERFACE ( type)
Valeur :
union { \
ListInterface list_interface; \
LIST_INTERFACE_BASE(type); \
}
Definition list.h:20

◆ LIST_INTERFACE_BASE

#define LIST_INTERFACE_BASE ( type)
Valeur :
struct { \
type *next; \
type *prev; \
}

◆ list_pop

#define list_pop ( dest)
Valeur :
#define list_pop(dest)
Definition list.h:197

◆ list_push

#define list_push ( dest,
elem )
Valeur :
#define list_push(dest, elem)
Definition list.h:179

◆ list_unlink

#define list_unlink ( dest,
elem )
Valeur :
#define list_unlink(dest, elem)
Definition list.h:191

Documentation des définitions de type

◆ List

typedef struct List List

◆ ListAnchor

typedef struct ListAnchor ListAnchor

◆ ListAnchorInterface

typedef struct ListAnchorInterface ListAnchorInterface

◆ ListContainer

typedef struct ListContainer ListContainer

◆ ListInterface

typedef struct ListInterface ListInterface

Documentation des fonctions

◆ alist_append()

List * alist_append ( ListAnchor * list,
List * elem )

Insere elem a la fin de list (apres list->last).

Paramètres
list
elem
Renvoie
List*

◆ alist_insert()

List * alist_insert ( ListAnchor * list,
List * ref,
List * elem )

Insere elem apres ref, un element de list.

Si ref = NULL => list vide donc elem devient le seul elem de la list

Paramètres
list
ref
elem
Renvoie
List* : elem

◆ alist_merge_tail()

void alist_merge_tail ( ListAnchor * dst,
ListAnchor * src )

Accroche src a la fin de dest.

Paramètres
dst
src

◆ alist_pop()

List * alist_pop ( ListAnchor * list)

Retire le premier element de list.

Paramètres
list
elem
Renvoie
List* : le premier élément détaché

◆ alist_push()

List * alist_push ( ListAnchor * list,
List * elem )

Insere elem en tête de list (avant list->first).

Paramètres
list
elem
Renvoie
List* : elem

◆ alist_unlink()

List * alist_unlink ( ListAnchor * list,
List * elem )

Detache elem de list.

Paramètres
list
elem
Renvoie
List* : element détaché

◆ list_append()

List * list_append ( List ** dest,
List * elem )

Insere elem a la fin de dest.

Paramètres
dest
elem
Renvoie
List*

◆ list_insert()

List * list_insert ( List ** dest,
List * elem )

Insere elem apres dest.

Paramètres
dest
elem
Renvoie
List* : elem

◆ list_pop()

List * list_pop ( List ** list)

Retire de list son premier element.

Paramètres
list
Renvoie
List* : Premier élément détaché

◆ list_push()

List * list_push ( List ** dest,
List * elem )

Insere elem en tête de dest. *dest pointe sur la nouvelle tete.

Paramètres
dest
elem
Renvoie
List* : elem

◆ list_unlink()

List * list_unlink ( List ** dest,
List * elem )

Detache elem de dest.

Paramètres
dest
elem
Renvoie
List* : elem