SayoriOS 0.3.3

jse_array.h
1 #ifndef SAYORI_JSE_ARRAY_H
2 #define SAYORI_JSE_ARRAY_H
3
4 #pragma once
5 #include "common.h"
6
7 #define JSE_EXT_ARRAY_INITIAL_SIZE 16
8
12 typedef enum {
13 JSE_ARRAY_TYPE_NULL,
14 JSE_ARRAY_TYPE_INT,
15 JSE_ARRAY_TYPE_STRING,
16 JSE_ARRAY_TYPE_ARRAY
17 } JSE_ARRAY_TYPE;
18
22 typedef union {
23 int32_t int_value;
24 char* str_value;
25 struct JSE_ARRAY* array_value;
26 } JSE_ARRAY_VALUE;
27
31 typedef struct {
32 char* key;
33 JSE_ARRAY_VALUE value;
34 JSE_ARRAY_TYPE type;
35 } JSE_ARRAY_DATA;
36
40 typedef struct JSE_ARRAY {
41 JSE_ARRAY_DATA* pairs;
42 int size;
43 int capacity;
44 } JSE_ARRAY;
45
47 JSE_ARRAY jse_array_create();
48 JSE_ARRAY* jse_array_link_create();
49 void jse_array_link_dump(JSE_ARRAY* arr, int space);
50 void jse_array_dump(JSE_ARRAY arr,int space);
51 void jse_array_value_dump(JSE_ARRAY_DATA data, int space);
52 void jse_array_push(JSE_ARRAY* arr, const char* key, JSE_ARRAY_VALUE value, JSE_ARRAY_TYPE type);
53 JSE_ARRAY_DATA jse_array_getByKey(JSE_ARRAY* arr, const char* key);
54 JSE_ARRAY_DATA jse_array_getByIndex(JSE_ARRAY* arr, int index);
55 void jse_array_free(JSE_ARRAY* arr);
56 JSE_ARRAY jse_array_change_key_case(const JSE_ARRAY* orig, int uppercase);
57 void jse_array_fill(JSE_ARRAY* arr, int start_index, int count, JSE_ARRAY_VALUE value, JSE_ARRAY_TYPE type);
58 JSE_ARRAY jse_array_diff(JSE_ARRAY* array, JSE_ARRAY* other_array);
59 void jse_array_destroZ(JSE_ARRAY* array, int space);
60 void jse_array_editByID(JSE_ARRAY* arr, int Index, JSE_ARRAY_VALUE value, JSE_ARRAY_TYPE type);
61
62 #endif //SAYORI_JSE_ARRAY_H
common.h
Основные определения ядра
JSE_ARRAY_DATA
Данные массива
Definition: jse_array.h:31
JSE_ARRAY_DATA::value
JSE_ARRAY_VALUE value
! Ключ
Definition: jse_array.h:33
JSE_ARRAY_DATA::type
JSE_ARRAY_TYPE type
! Значение
Definition: jse_array.h:34
JSE_ARRAY
Структура массива
Definition: jse_array.h:40
JSE_ARRAY::size
int size
! Данные (ключ,значение)
Definition: jse_array.h:42
JSE_ARRAY::capacity
int capacity
! Кол-во элементов
Definition: jse_array.h:43
array
Definition: minesweeper.c:29
JSE_ARRAY_VALUE
Значение ключа
Definition: jse_array.h:22
JSE_ARRAY_VALUE::array_value
struct JSE_ARRAY * array_value
! Строка (при JSE_ARRAY_TYPE_STRING)
Definition: jse_array.h:25
JSE_ARRAY_VALUE::str_value
char * str_value
! Числовое значение (при JSE_ARRAY_TYPE_INT)
Definition: jse_array.h:24