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;
27 
31 typedef struct {
32  char* key;
34  JSE_ARRAY_TYPE type;
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
Основные определения ядра
Данные массива
Definition: jse_array.h:31
JSE_ARRAY_VALUE value
! Ключ
Definition: jse_array.h:33
JSE_ARRAY_TYPE type
! Значение
Definition: jse_array.h:34
Структура массива
Definition: jse_array.h:40
int size
! Данные (ключ,значение)
Definition: jse_array.h:42
int capacity
! Кол-во элементов
Definition: jse_array.h:43
Значение ключа
Definition: jse_array.h:22
struct JSE_ARRAY * array_value
! Строка (при JSE_ARRAY_TYPE_STRING)
Definition: jse_array.h:25
char * str_value
! Числовое значение (при JSE_ARRAY_TYPE_INT)
Definition: jse_array.h:24