From 901402c99018422c994bdb297e3ba404969c88ea Mon Sep 17 00:00:00 2001 From: Charles Date: Mon, 30 Mar 2020 22:26:36 +0200 Subject: Added documentation for ht and lst --- include/libft_ht.h | 41 +++++++++++++++++++++++++++-------------- include/libft_lst.h | 25 ++++++++++++++++++------- 2 files changed, 45 insertions(+), 21 deletions(-) (limited to 'include') diff --git a/include/libft_ht.h b/include/libft_ht.h index ea6cb3f..24abf95 100644 --- a/include/libft_ht.h +++ b/include/libft_ht.h @@ -13,21 +13,38 @@ #ifndef LIBFT_HT_H # define LIBFT_HT_H +/** +** \file libft_ht.h +** \brief Hash table manipulation +*/ + # include "libft.h" # include "libft_lst.h" -typedef struct s_ftht_content +/** +** \brief Hash table entry, key/value pair +** \param key String key +** \param value Pointer to data +*/ + +typedef struct s_ftht_entry { char *key; void *value; -} t_ftht_content; +} t_ftht_entry; + +typedef t_ftlst* t_ftht_bucket; -typedef t_ftlst* t_ftht_entry; +/** +** \brief Hash table struct +** \param size Number of buckets +** \param buckets Bucket array +*/ typedef struct s_ftht { t_ftsize size; - t_ftht_entry *entries; + t_ftht_bucket *buckets; } t_ftht; typedef t_ftuint t_ftht_digest; @@ -35,23 +52,19 @@ typedef t_ftuint t_ftht_digest; t_ftht_digest ft_hthash(t_ftht *ht, char *key); t_ftht *ft_htnew(t_ftsize size); -void ft_htdestroy(t_ftht *ht, void (*del)(t_ftht_content*)); -void ft_htdestroy_all(t_ftht *ht); -void ft_htdestroy_key(t_ftht *ht); +void ft_htdestroy(t_ftht *ht, void (*del)(t_ftht_entry*)); void *ft_htget(t_ftht *ht, char *key); -t_ftht_content *ft_htset(t_ftht *ht, char *key, void *value, - void (*del)(t_ftht_content*)); +t_ftht_entry *ft_htset(t_ftht *ht, char *key, void *value, + void (*del)(t_ftht_entry*)); void ft_htdelone(t_ftht *ht, char *key, - void (*del)(t_ftht_content*)); -void ft_htdelone_key(t_ftht *ht, char *key); -t_ftht_content *ft_htcontent_new(char *key, void *value); -void ft_htiter(t_ftht *ht, void (*f)(t_ftht_content*)); + void (*del)(t_ftht_entry*)); +t_ftht_entry *ft_htentry_new(char *key, void *value); +void ft_htiter(t_ftht *ht, void (*f)(t_ftht_entry*)); /* ** internals */ -void ft_inter_htdelcontent_key(t_ftht_content *content); int ft_inter_htkey_cmp(const void *ref_key, const void *content); diff --git a/include/libft_lst.h b/include/libft_lst.h index 5669979..04b1dbf 100644 --- a/include/libft_lst.h +++ b/include/libft_lst.h @@ -13,29 +13,40 @@ #ifndef LIBFT_LST_H # define LIBFT_LST_H +/** +** \file libft_lst.h +** \brief Linked list Manipulation +*/ + # include # include "libft_types.h" # include "libft_algo.h" +/** +** \brief List struct +** \param data Pointer to node data +** \param next Pointer to next node or NULL if last node +*/ + typedef struct s_ftlst { - void *content; + void *data; struct s_ftlst *next; } t_ftlst; -typedef void (*t_ftdel_func)(void *); +typedef void (*t_ftdel_func)(void *); -t_ftlst *ft_lstnew(void const *content); -void ft_lstadd_front(t_ftlst **alst, t_ftlst *new); +t_ftlst *ft_lstnew(void const *data); int ft_lstsize(t_ftlst *lst); +void ft_lstpush_front(t_ftlst **alst, t_ftlst *new); +void ft_lstpush_back(t_ftlst **alst, t_ftlst *new); +void ft_lstpop_front(t_ftlst **lst, void (*del)(void *)); t_ftlst *ft_lstlast(t_ftlst *lst); -void ft_lstadd_back(t_ftlst **alst, t_ftlst *new); void ft_lstdelone(t_ftlst *lst, void (*del)(void *)); -void ft_lstclear(t_ftlst **lst, void (*del)(void *)); +void ft_lstdestroy(t_ftlst **lst, void (*del)(void *)); void ft_lstiter(t_ftlst *lst, void (*f)(void *)); t_ftlst *ft_lstmap(t_ftlst *lst, void *(*f)(void *), t_ftdel_func del); -void ft_lstpop_front(t_ftlst **lst, void (*del)(void *)); t_ftlst *ft_lstreverse_ret(t_ftlst *lst); void ft_lstreverse(t_ftlst **lst); void ft_lstremove_if(t_ftlst **lst, -- cgit