#ifndef LIBFT_H # define LIBFT_H # include void *ft_realloc(void *ptr, size_t old_size, size_t new_size); /* String functions */ size_t ft_strlen(const char *s); char *ft_strdup(const char *s); int ft_strcmp(const char *s1, const char *s2); /* Character checks and conversions */ int ft_isalpha(int c); int ft_isdigit(int c); int ft_islower(int c); int ft_isupper(int c); int ft_tolower(int c); int ft_toupper(int c); /* Memory functions */ void ft_bzero(void *s, size_t n); void *ft_memset(void *s, int c, size_t n); void *ft_memset32(void *s, int c, size_t n); void *ft_memset64(void *s, int c, size_t n); void *ft_memcpy(void *dst, const void *src, size_t n); void *ft_memcpy32(void *dst, const void *src, size_t n); void *ft_memcpy64(void *dst, const void *src, size_t n); int ft_memcmp(const void *s1, const void *s2, size_t n); void *ft_memmove(void *dst, const void *src, size_t n); void *ft_memchr(const void *s, int c, size_t n); /* Conversion */ int ft_atoi(const char *str); /* Output functions */ int ft_putchar(char c); int ft_putstr(const char *s); int ft_putnbr(int n); int ft_putunbr(unsigned int n); int ft_puthex(unsigned int n, int uppercase); int ft_putaddr(unsigned long n); int ft_putptr(void *ptr); int ft_printf(const char *format, ...); /* String */ typedef struct s_string { size_t len; char *data; } t_string; /* Single Linked List */ typedef struct s_slist { void *data; struct s_slist *next; } t_slist; t_slist *ft_slist_new(void *data); void ft_slist_push(t_slist **lst, t_slist *node); void ft_slist_unshift(t_slist **lst, t_slist *node); t_slist *ft_slist_pop(t_slist **lst); t_slist *ft_slist_shift(t_slist **lst); int ft_slist_size(t_slist *lst); void ft_slist_clear(t_slist **lst); void ft_slist_reverse(t_slist **lst); int ft_slist_empty(t_slist *lst); void ft_slist_iter(t_slist *lst, void (*f)(void *)); void ft_slist_rm(t_slist **lst, void *data, int (*cmp)(void *, void *), void (*del)(void *)); t_slist *ft_slist_find(t_slist *lst, void *data, int (*cmp)(void *, void *)); int ft_slist_insert(t_slist **lst, t_slist *node, int index); t_slist *ft_slist_get(t_slist *lst, int index); /* Vector */ typedef struct s_vec { void *data; size_t size; size_t capacity; size_t element_size; } t_vec; /* Vector functions*/ t_vec *ft_vecnew(size_t element_size); #endif