minishell
ft_vect.h
Go to the documentation of this file.
1 /* ************************************************************************** */
2 /* */
3 /* ::: :::::::: */
4 /* ft_vect.h :+: :+: :+: */
5 /* +:+ +:+ +:+ */
6 /* By: kfujita <kfujita@student.42tokyo.jp> +#+ +:+ +#+ */
7 /* +#+#+#+#+#+ +#+ */
8 /* Created: 2023/01/27 21:28:26 by kfujita #+# #+# */
9 /* Updated: 2023/02/06 23:57:54 by kfujita ### ########.fr */
10 /* */
11 /* ************************************************************************** */
12 
13 #ifndef FT_VECT_H
14 # define FT_VECT_H
15 
16 # include <stddef.h>
17 # include <stdbool.h>
18 
19 # ifndef FT_VECT_EXPAND_STEP
20 # define FT_VECT_EXPAND_STEP 32
21 # endif
22 
23 typedef struct s_vect
24 {
25  size_t cap;
26  size_t len;
27  size_t elemsize;
28  void *p;
29 } t_vect;
30 
31 t_vect vect_init(size_t cap, size_t elemsize);
32 
33 bool vect_reserve(t_vect *vect, size_t newcap);
34 
35 void *vect_at(const t_vect *vect, size_t index);
36 
37 bool vect_append_str(t_vect *vect, const char *value, size_t count);
38 bool vect_append_range(t_vect *vect, const void *value, size_t count);
39 
40 bool vect_push_back(t_vect *vect, const void *elem, size_t *written_index);
41 
42 bool vect_set(t_vect *vect, const void *elem, size_t index);
43 
44 bool vect_remove(t_vect *vect, size_t index);
45 
46 void vect_dispose(t_vect *vect);
47 void vect_dispose_each(t_vect *vect, void (*disposer)(void *));
48 void vect_dispose_ptrarr(t_vect *vect);
49 
50 #endif
void * vect_at(const t_vect *vect, size_t index)
Definition: vect_at.c:15
bool vect_reserve(t_vect *vect, size_t newcap)
Definition: vect_reserve.c:17
void vect_dispose_ptrarr(t_vect *vect)
Definition: vect_dispose.c:41
bool vect_set(t_vect *vect, const void *elem, size_t index)
Definition: vect_set.c:16
bool vect_remove(t_vect *vect, size_t index)
Definition: vect_remove.c:16
void vect_dispose(t_vect *vect)
Definition: vect_dispose.c:16
bool vect_push_back(t_vect *vect, const void *elem, size_t *written_index)
bool vect_append_str(t_vect *vect, const char *value, size_t count)
bool vect_append_range(t_vect *vect, const void *value, size_t count)
void vect_dispose_each(t_vect *vect, void(*disposer)(void *))
Definition: vect_dispose.c:25
t_vect vect_init(size_t cap, size_t elemsize)
Definition: vect_init.c:16
Definition: ft_vect.h:24
size_t cap
Definition: ft_vect.h:25
size_t elemsize
Definition: ft_vect.h:27
void * p
Definition: ft_vect.h:28
size_t len
Definition: ft_vect.h:26