Update page '2. Заголовочные файлы'

Gregory Lirent 2022-08-17 12:58:13 +03:00
parent 0f81b8e490
commit e4cbfccf75

@ -34,93 +34,119 @@
##### 1. Определение размера контейнера
- `size_t string_size(const vtype_string* x)`
- Принимает указатель на инициализированное значение **vtype_string**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_string**.
- Возвращает подсчитанное количество символов в строке (с поддержкой юникода).
- `size_t string_nmemb(const vtype_string* x)`
- Принимает указатель на инициализированное значение **vtype_string**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_string**.
- Возвращает подсчитанный размер строки в байтах (также как это сделал бы **strlen**)
- `size_t array_size(const vtype_array* x)`
- Принимает указатель на инициализированное значение **vtype_array**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_array**.
- Возвращает количество элементов находящихся внутри контейнера.
- `size_t array_nmemb(const vtype_array* x)`
- Принимает указатель на инициализированное значение **vtype_array**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_array**.
- Возвращает размер блока памяти контейнера в байтах.
- `size_t list_size(const vtype_list* x)`
- Принимает указатель на инициализированное значение **vtype_list**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_list**.
- Возвращает подсчитанное количество элементов, находящихся внутри контейнера.
- `size_t map_size(const vtype_map* x)`
- Принимает указатель на инициализированное значение **vtype_map**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_map**.
- Возвращает подсчитанное количество элементов, находящихся внутри контейнера.
- `size_t vset_size(const vtype_set* x)`
- Принимает указатель на инициализированное значение **vtype_set**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_set**.
- Возвращает подсчитанное количество элементов, находящихся внутри контейнера.
- `size_t dict_size(const vtype_dict* x)`
- Принимает указатель на инициализированное значение **vtype_dict**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_dict**.
- Возвращает количество элементов, находящихся внутри контейнера.
- `size_t dict_capacity(const vtype_dict* x)`
- Принимает указатель на инициализированное значение **vtype_dict**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_dict**.
- Возвращает текущий размер таблицы, доступной для вставки значений.
##### 2. Сравнение контейнеров между собой (также см. [1.1. Система типов](https://gogs.lirent.ru/lirent/libcdsb/wiki/1.1.+%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0+%D1%82%D0%B8%D0%BF%D0%BE%D0%B2))
- `int string_compare(const vtype_string* s0, const vtype_string* s1)`
- Принимает два указателя на инициализированные значения **vtype_string**.
- Принимает два указателя на области памяти, содержащие инициализированные значения **vtype_string**.
- Возвращает 0 если строки равны, значения < 0 и > 0, если значение s0 меньше или больше значения s1 соответственно.
- `int array_compare(const vtype_array* s0, const vtype_array* s1)`
- Принимает два указателя на инициализированные значения **vtype_array**.
- Принимает два указателя на области памяти, содержащие инициализированные значения **vtype_array**.
- Возвращает 0 если значения контейнеров равны, значения < 0 и > 0, если значения s0 меньше или больше значений s1 соответственно.
- `int list_compare(const vtype_list* s0, const vtype_list* s1)`
- Принимает два указателя на инициализированные значения **vtype_list**.
- Принимает два указателя на области памяти, содержащие инициализированные значения **vtype_list**.
- Возвращает 0 если значения контейнеров равны, значения < 0 и > 0, если значения s0 меньше или больше значений s1 соответственно.
- `int map_compare(const vtype_map* s0, const vtype_map* s1)`
- Принимает два указателя на инициализированные значения **vtype_map**.
- Принимает два указателя на области памяти, содержащие инициализированные значения **vtype_map**.
- Возвращает 0 если значения контейнеров равны, значения < 0 и > 0, если значения s0 меньше или больше значений s1 соответственно.
- `int vset_compare(const vtype_set* s0, const vtype_set* s1)`
- Принимает два указателя на инициализированные значения **vtype_set**.
- Принимает два указателя на области памяти, содержащие инициализированные значения **vtype_set**.
- Возвращает 0 если значения контейнеров равны, значения < 0 и > 0, если значения s0 меньше или больше значений s1 соответственно.
- `int dict_compare(const vtype_dict* s0, const vtype_dict* s1)`
- Принимает два указателя на инициализированные значения **vtype_dict**.
- Принимает два указателя на области памяти, содержащие инициализированные значения **vtype_dict**.
- Возвращает 0 если значения контейнеров равны, значения < 0 и > 0, если значения s0 меньше или больше значений s1 соответственно.
##### 3. Глубокое копирование контейнера
- `vtype_string string_copy(const vtype_string* s)`
- Принимает указатель на инициализированное значение **vtype_string**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_string**.
- Возвращает новое инициализированное значение строки, равное содержимому `s`.
- `vtype_array array_copy(const vtype_array* s)`
- Принимает указатель на инициализированное значение **vtype_array**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_array**.
- Возвращает новое инициализированное значение контейнера, равное содержимому `s`.
- `vtype_list list_copy(const vtype_list* s)`
- Принимает указатель на инициализированное значение **vtype_list**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_list**.
- Возвращает новое инициализированное значение контейнера, равное содержимому `s`.
- `vtype_map map_copy(const vtype_map* s)`
- Принимает указатель на инициализированное значение **vtype_map**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_map**.
- Возвращает новое инициализированное значение контейнера, равное содержимому `s`.
- `vtype_set vset_copy(const vtype_set* s)`
- Принимает указатель на инициализированное значение **vtype_set**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_set**.
- Возвращает новое инициализированное значение контейнера, равное содержимому `s`.
- `vtype_dict dict_copy(const vtype_dict* s)`
- Принимает указатель на инициализированное значение **vtype_dict**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_dict**.
- Возвращает новое инициализированное значение контейнера, равное содержимому `s`.
##### 4. Глубокое копирование области памяти, содержащей контейнер
- `vtype_string* string_duplicate(const vtype_string* s)`
- Принимает указатель на инициализированное значение **vtype_string**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_string**.
- Возвращает новый выделенный блок памяти (равный `sizeof(vtype_string)`), инициализированный значением строки, равным содержимому `s`.
- `vtype_array* array_duplicate(const vtype_array* s)`
- Принимает указатель на инициализированное значение **vtype_array**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_array**.
- Возвращает новый выделенный блок памяти (равный `sizeof(vtype_array)`), инициализированный значением контейнера, равным содержимому `s`.
- `vtype_list* list_duplicate(const vtype_list* s)`
- Принимает указатель на инициализированное значение **vtype_list**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_list**.
- Возвращает новый выделенный блок памяти (равный `sizeof(vtype_list)`), инициализированный значением контейнера, равным содержимому `s`.
- `vtype_map* map_duplicate(const vtype_map* s)`
- Принимает указатель на инициализированное значение **vtype_map**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_map**.
- Возвращает новый выделенный блок памяти (равный `sizeof(vtype_map)`), инициализированный значением контейнера, равным содержимому `s`.
- `vtype_set* vset_duplicate(const vtype_set* s)`
- Принимает указатель на инициализированное значение **vtype_set**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_set**.
- Возвращает новый выделенный блок памяти (равный `sizeof(vtype_set)`), инициализированный значением контейнера, равным содержимому `s`.
- `vtype_dict* dict_duplicate(const vtype_dict* s)`
- Принимает указатель на инициализированное значение **vtype_dict**.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_dict**.
- Возвращает новый выделенный блок памяти (равный `sizeof(vtype_dict)`), инициализированный значением контейнера, равным содержимому `s`.
##### 5. Инициализация контейнера значением другого контейнера
- `void string_copy_init(vtype_string* x, const vtype_string* s)`
- Принимает указатель на область памяти, содержащую инициализируемую строку `x`.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_string** `s`.
- Инициализирует область памяти `x` значением строки, равным содержимому `s`.
- `void array_copy_init(vtype_array* x, const vtype_array* s)`
- Принимает указатель на область памяти, содержащую инициализируемый контейнер `x`.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_array** `s`.
- Инициализирует область памяти `x` значением контейнера, равным содержимому `s`.
- `void list_copy_init(vtype_list* x, const vtype_list* s)`
- Принимает указатель на область памяти, содержащую инициализируемый контейнер `x`.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_list** `s`.
- Инициализирует область памяти `x` значением контейнера, равным содержимому `s`.
- `void map_copy_init(vtype_map* x, const vtype_map* s)`
- Принимает указатель на область памяти, содержащую инициализируемый контейнер `x`.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_map** `s`.
- Инициализирует область памяти `x` значением контейнера, равным содержимому `s`.
- `void vset_copy_init(vtype_set* x, const vtype_set* s)`
- Принимает указатель на область памяти, содержащую инициализируемый контейнер `x`.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_set** `s`.
- Инициализирует область памяти `x` значением контейнера, равным содержимому `s`.
- `void dict_copy_init(vtype_dict* x, const vtype_dict* s)`
- Принимает указатель на область памяти, содержащую инициализируемый контейнер `x`.
- Принимает указатель на область памяти, содержащую инициализированное значение **vtype_dict** `s`.
- Инициализирует область памяти `x` значением контейнера, равным содержимому `s`.