-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathArray.h
More file actions
56 lines (42 loc) · 1.76 KB
/
Copy pathArray.h
File metadata and controls
56 lines (42 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#ifndef JSON_ARRAY_
#define JSON_ARRAY_
#include <stdint.h>
#include <stddef.h>
#include "types.h"
#include "String.h"
struct Object;
struct Element;
#define ARRAY_INIT_CAPACITY 128
#define ARRAY_M_FACTOR 2
struct Array {
struct Element* a;
size_t size, capacity;
};
typedef struct Array Array;
Array create_array_from_stack(size_t size, struct Element* arr);
Array create_array(size_t size);
Array create_empty_array();
void delete_array(Array array);
Array copy_array(Array other);
struct Element get_struct_array_element(Array* array, size_t index);
char get_char_element(Array *array, size_t index);
int32_t get_int32_t_element(Array *array, size_t index);
int64_t get_int64_t_element(Array *array, size_t index);
String get_string_element(Array *array, size_t index);
struct Object get_object_element(Array *array, size_t index);
Array get_array_element(Array* array, size_t index);
void set_struct_array_element(Array* array, size_t index, enum JSONType type, void* value);
void set_char_element(Array *array, size_t index, char x);
void set_int32_t_element(Array *array, size_t index, int32_t x);
void set_int64_t_element(Array *array, size_t index, int64_t x);
void set_string_element(Array *array, size_t index, String x);
void set_object_element(Array *array, size_t index, struct Object x);
void set_array_element(Array* array, size_t index, Array x);
void array_push_back(Array *array, enum JSONType type, void* value);
void array_char_push_back(Array *array, char x);
void array_int32_t_push_back(Array *array, int32_t x);
void array_int64_t_push_back(Array *array, int64_t x);
void array_string_push_back(Array *array, String x);
void array_object_push_back(Array *array, struct Object x);
void array_array_push_back(Array *array, Array x);
#endif // JSON_ARRAY_