Обрезка и зависимости
| Публичный макрос выбора | Макрос реализации | Прямые зависимости |
|---|---|---|
XRT_MODULE_JSONL_CORE | XRT_FEATURE_JSONL_CORE | core |
XRT_MODULE_JSONL_READ | XRT_FEATURE_JSONL_READ | jsonl_core, json_read |
XRT_MODULE_JSONL_WRITE | XRT_FEATURE_JSONL_WRITE | jsonl_core, json_write |
XRT_MODULE_JSONL_FILE | XRT_FEATURE_JSONL_FILE | jsonl_read, jsonl_write, file_whole |
XRT_MODULE_JSONL | XRT_FEATURE_JSONL | jsonl_file |
Заголовочный файл — <xrt/jsonl.h>, его можно подключить и через зонтичный <xrt.h>. Выбор только чтения или только записи не подключает файловый модуль.
Стабильный контракт
- По умолчанию пустые строки игнорируются: пустые строки и строки только из ASCII-пробелов, табуляций и CR. Принимаются LF, CRLF и их сочетания; одиночный CR не является разделителем записей. Символы Юникода никогда не превращают строку в пустую.
- Пустой ввод и ввод из одних пустых строк возвращают пустой Array. Строгий режим пустых строк по-прежнему принимает ввод нулевой длины и один завершающий перевод строки после последней записи; лишние пустые строки — ошибка.
- Строка должна содержать ровно одно полное значение; последней полной записи разрешено не иметь завершающего перевода строки. Значения на нескольких строках, несколько корневых значений в одной строке, BOM, некорректный UTF-8 и оборванная последняя запись — всё это ошибки.
- Экранированный перевод строки внутри строки не разделяет записи. Записи-массивы сохраняют вложенность: текст
[]\nдаёт Array с одним пустым массивом. - Десериализация передаёт владение Array только после успеха всех записей; при ошибке возвращается C NULL и освобождаются все частичные результаты.
- Корнем сериализации должен быть
XVALUE_ARRAY; null, пустая строка и пустые контейнеры — настоящие записи. Стратегия SKIP не может пропустить всю запись, она действует только внутри одного корневого значения. - Вывод компактный, к каждой записи добавляется LF, пустой Array даёт ноль байт. Конфигурация PRETTY отвергается. Конфигурация снимается по значению; изменение исходной конфигурации в обратном вызове не влияет на текущий вызов.
Validповторяет синтаксическую проверку JSON без построения DOM: пустые строки игнорируются, проверяются накопительные бюджеты по умолчанию, политика повторных ключей DOM не участвует.- Файловая запись сначала полностью сериализует в памяти, затем атомарно заменяет файл; при ошибке сериализации цель не изменяется. Синхронный вывод через обратный вызов может успеть зафиксировать часть записей до ошибки; эти байты нельзя откатить.
- Однострочные комментарии и висячие запятые — расширения совместимости, включаемые только внутри Record; они не могут продолжаться между физическими строками.
Потоки и владение: API не содержит неявных блокировок; каждый вызов владеет независимым рабочим пространством, совместный изменяемый ввод синхронизирует вызывающий. Запись выполняется по снимку backing внешнего Array, поэтому во время обратных вызовов действуют правила владения поддеревом Value. Текст ввода и конфигурация заимствуются до возврата вызова; результирующий Array освобождается через xrtValueRelease, результирующая строка — через xrtFree. Выходной обратный вызов потребляет байты до возврата.
Константы
| Константа | Значение | Смысл |
|---|---|---|
XJSONL_READ_REJECT_EMPTY_LINES | UINT32_C(0x00000001) | Пустые строки становятся ошибкой; по умолчанию выключено. |
Конфигурация обязана быть инициализирована через Init; все бюджеты ненулевые. Значения Record по умолчанию задают существующие функции инициализации JSON. Общий ввод/вывод по умолчанию 64 МиБ; количество записей и синтаксических значений — 1000000.
xjsonlerrorтип
Ошибки получаются через xrtGetError() с доменом формата xrt.jsonl; ошибки аргументов и нижележащий OOM могут напрямую возвращаться как ошибки Core. Обёртки RECORD/OUTPUT/IO сохраняют Kind причины. Если выделение памяти для самой обёртки не удалось, сохраняется исходная ошибка-причина; данные о позиции не гарантируются.
| Значение | Смысл |
|---|---|
XJSONL_ERROR_CONFIG | Конфигурация не инициализирована, ненулевые зарезервированные биты, нулевой бюджет или включён PRETTY. |
XJSONL_ERROR_SYNTAX | Пустая строка в строгом режиме пустых строк. |
XJSONL_ERROR_LIMIT | Исчерпан общий или одиночный бюджет. |
XJSONL_ERROR_RECORD | Ошибка кодирования/декодирования одного значения или добавления его в Array; Cause сохраняет конкретную причину. |
XJSONL_ERROR_TYPE | Корень сериализации не Array. |
XJSONL_ERROR_OUTPUT | Ошибка синхронного выходного обратного вызова. |
XJSONL_ERROR_IO | Ошибка чтения файла с лимитом или атомарной замены файла. |
XJSONL_ERROR_STATE | Зарезервированный код ошибки состояния построчной обработки. |
xjsonllocationтип
| Поле | Тип | Смысл |
|---|---|---|
Offset | size_t | Смещение в байтах от нуля в исходном вводе. |
Line | size_t | Одноразовый физический номер строки, отсчитываемый с единицы по LF; CRLF считается одной строкой, игнорируемые пустые строки тоже считаются. |
Column | size_t | Номер байта UTF-8 в текущей физической строке, с единицы; не в символах Юникода. |
RecordIndex | size_t | Индекс записи с нуля; пустые строки его не увеличивают, ошибка пустой строки указывает на индекс следующей ожидаемой записи. |
xjsonlreadflagтип
| Значение | Смысл |
|---|---|
XJSONL_READ_REJECT_EMPTY_LINES | Превращает игнорируемые по умолчанию пустые строки в синтаксические ошибки. |
xjsonlreadconfigтип
| Поле | Тип | Смысл |
|---|---|---|
Record | xjsonreadconfig | Конфигурация одной записи; MaxInputBytes/MaxOutputBytes не включают разделители CRLF/LF, глубина считается от корня каждой записи. |
Flags | uint32 | По умолчанию 0; XJSONL_READ_REJECT_EMPTY_LINES включает ошибки пустых строк. |
MaxInputBytes | size_t | Предел всего исходного ввода, включая игнорируемые пустые строки и все разделители; по умолчанию 64 МиБ. |
MaxRecords | size_t | Предел числа непустых записей, равен максимальному числу элементов результирующего Array; по умолчанию 1000000. |
MaxTotalValues | size_t | Накопительный предел синтаксических значений по всем записям, включая отброшенные политикой повторных ключей и исключая синтезируемый Array; по умолчанию 1000000. |
Reserved | uint32[4] | Зарезервированное место; должно быть целиком нулевым. |
xjsonlwriteconfigтип
| Поле | Тип | Смысл |
|---|---|---|
Record | xjsonwriteconfig | Конфигурация одной записи; MaxInputBytes/MaxOutputBytes не включают разделители CRLF/LF, глубина считается от корня каждой записи. |
MaxOutputBytes | size_t | Предел всех выходных байт, включая каждый LF и исключая завершающий NUL результата; по умолчанию 64 МиБ. |
MaxRecords | size_t | Предел числа непустых записей, равен максимальному числу элементов результирующего Array; по умолчанию 1000000. |
Reserved | uint32[4] | Зарезервированное место; должно быть целиком нулевым. |
xrtJsonlErrorLocationфункция
Читает глобальное байтовое смещение, физические строку/столбец с единицы и индекс записи с нуля; без позиции вывод не изменяется.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
pError | вход | допускается null; заимствование только для чтения | Читает позицию из ошибки этого формата; возвращает false при отсутствии позиции или чужом домене ошибки. |
pLocation | выход | не null | При успехе заполняется глобальной позицией; при ошибке содержимое не изменяется. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| true | Позиция прочитана. | — |
| false | Нет позиции или неверный аргумент. | Вывод позиции не изменён; само отсутствие позиции не устанавливает ошибку. |
XERR_ARGUMENT— выход позиции равен null.
ПримерПроверено компиляцией
jsonl · Вызов xrtJsonlErrorLocation в полной программе; при ошибке переход к единой очистке.
if ( !xrtJsonlErrorLocation(xrtGetError(), &Location) ) goto done;
xrtJsonlReadConfigInitфункция
Инициализирует пропуск пустых строк по умолчанию, строгий синтаксис одной записи и ограниченные накопительные бюджеты.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
pConfig | выход | не null | Задаёт значения по умолчанию и обнуляет зарезервированные поля. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| void | Инициализация завершена. | Нулевой указатель устанавливает ошибку аргумента. |
XERR_ARGUMENT— выход конфигурации равен null.
ПримерПроверено компиляцией
jsonl · Вызов xrtJsonlReadConfigInit в полной программе; при ошибке переход к единой очистке.
xrtJsonlReadConfigInit(&Read);
xrtJsonlParseфункция
Разбирает последовательность записей с конфигурацией по умолчанию; при успехе возвращает Array во владение, пустой ввод даёт пустой Array.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
Text | вход | явная длина в байтах; NULL Data только при нулевой длине | Весь текст заимствуется до возврата вызова; ввод не обязан завершаться NUL. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| не null | Array во владение вызывающего. | — |
| NULL | Ошибка аргументов, бюджета, синтаксиса или ресурсов. | Частичный результат не возвращается; ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_PROTOCOL— непустая строка не является одним полным корректным значением, либо в строгом режиме встречена пустая строка; ошибка одной записи сохраняет нижележащую цепочку причин.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
jsonl · Вызов xrtJsonlParse в полной программе; при ошибке переход к единой очистке.
pArray = xrtJsonlParse(XRT_STR_LITERAL("{\"id\":1}\n\n[2,3]\r\nnull\n"));
if ( pArray == NULL ) goto done;
xrtJsonlReadфункция
Разбирает все записи по конфигурации; при ошибке освобождает частичные результаты и возвращает NULL. Результат освобождается через xrtValueRelease.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
Text | вход | явная длина в байтах; NULL Data только при нулевой длине | Весь текст заимствуется до возврата вызова; ввод не обязан завершаться NUL. |
pConfig | вход | не null; должен быть инициализирован | Конфигурация одной записи и накопительные бюджеты; источник не изменяется данным вызовом. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| не null | Array во владение вызывающего. | — |
| NULL | Ошибка аргументов, бюджета, синтаксиса или ресурсов. | Частичный результат не возвращается; ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_PROTOCOL— непустая строка не является одним полным корректным значением, либо в строгом режиме встречена пустая строка; ошибка одной записи сохраняет нижележащую цепочку причин.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
jsonl · Вызов xrtJsonlRead в полной программе; при ошибке переход к единой очистке.
pRead = xrtJsonlRead((xstrview){ Text, Size }, &Read);
if ( pRead == NULL ) goto done;
xrtJsonlValidфункция
По умолчанию игнорирует пустые строки и проверяет построчный синтаксис и накопительные бюджеты без построения DOM Value; политика повторных ключей не участвует.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
Text | вход | явная длина в байтах; NULL Data только при нулевой длине | Весь текст заимствуется до возврата вызова; ввод не обязан завершаться NUL. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| true | Все непустые строки прошли проверку синтаксиса и бюджетов по умолчанию. | — |
| false | Операция не выполнена. | Частичный результат не возвращается; ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_PROTOCOL— непустая строка не является одним полным корректным значением, либо в строгом режиме встречена пустая строка; ошибка одной записи сохраняет нижележащую цепочку причин.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
jsonl · Вызов xrtJsonlValid в полной программе; при ошибке переход к единой очистке.
if ( !xrtJsonlValid((xstrview){ Text, Size }) ) goto done;
xrtJsonlWriteConfigInitфункция
Инициализирует компактный построчный вывод, разделение LF и ограниченные накопительные бюджеты; конфигурация PRETTY недопустима.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
pConfig | выход | не null | Задаёт значения по умолчанию и обнуляет зарезервированные поля. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| void | Инициализация завершена. | Нулевой указатель устанавливает ошибку аргумента. |
XERR_ARGUMENT— выход конфигурации равен null.
ПримерПроверено компиляцией
jsonl · Вызов xrtJsonlWriteConfigInit в полной программе; при ошибке переход к единой очистке.
xrtJsonlWriteConfigInit(&Write);
xrtJsonlStringifyфункция
Записывает каждый элемент Array одной строкой; возвращает завершённый NUL текст, освобождаемый через xrtFree. При ошибке необязательный pSize не изменяется.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
pArray | вход | не null и имеет тип XVALUE_ARRAY | Сериализуемые элементы; вызов не потребляет владеющую ссылку вызывающего. |
pSize | выход | допускается null | При успехе принимает число байт, включая LF и исключая NUL; при ошибке не изменяется. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| не null | Завершённый NUL текст во владение; пустой вывод всё равно возвращает освобождаемую строку. | — |
| NULL | Ошибка конфигурации, типа, кодирования или ресурсов. | pSize не изменён; ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_TYPE— корень сериализации не Array.XERR_UNSUPPORTED— одно значение не кодируется выбранным форматом.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
jsonl · Вызов xrtJsonlStringify в полной программе; при ошибке переход к единой очистке.
Text = xrtJsonlStringify(pArray, &Size); if ( Text == NULL ) goto done;
xrtJsonlWriteфункция
Выводит каждую запись и её LF в синхронный обратный вызов по кускам; заимствованные байты действительны только во время вызова, зафиксированные до ошибки байты откатить нельзя.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
pArray | вход | не null и имеет тип XVALUE_ARRAY | Сериализуемые элементы; вызов не потребляет владеющую ссылку вызывающего. |
pConfig | вход | не null; должен быть инициализирован | Конфигурация одной записи и накопительные бюджеты; источник не изменяется данным вызовом. |
pWrite | вход | ненулевой синхронный обратный вызов | Потребляет заимствованные байты кусками; возврат false прерывает вывод. |
pUserData | вход | допускается null | Как есть передаётся синхронному выходному обратному вызову. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| true | Весь вывод завершён. | — |
| false | Операция не выполнена. | Ссылки ввода остаются у вызывающего; зафиксированные байты откатить нельзя, ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_TYPE— корень сериализации не Array.XERR_UNSUPPORTED— одно значение не кодируется выбранным форматом.XERR_IO— файловая операция либо сбой выходного обратного вызова без конкретной ошибки; прочие Kind нижележащей причины сохраняются как есть.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
jsonl · Вызов xrtJsonlWrite в полной программе; при ошибке переход к единой очистке.
if ( !xrtJsonlWrite(pArray, &Write, discard, NULL) ) goto done;
xrtJsonlParseFileфункция
Читает файл с лимитом по умолчанию и возвращает Array во владение.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
sPath | вход | ненулевой путь, завершённый NUL | Читаемый файл либо целевой файл атомарной замены. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| не null | Array во владение вызывающего. | — |
| NULL | Ошибка аргументов, бюджета, синтаксиса или ресурсов. | Частичный результат не возвращается; ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_PROTOCOL— непустая строка не является одним полным корректным значением, либо в строгом режиме встречена пустая строка; ошибка одной записи сохраняет нижележащую цепочку причин.XERR_IO— файловая операция либо сбой выходного обратного вызова без конкретной ошибки; прочие Kind нижележащей причины сохраняются как есть.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
jsonl · Вызов xrtJsonlParseFile в полной программе; при ошибке переход к единой очистке.
pRead = xrtJsonlParseFile(Path); if ( pRead == NULL ) goto done;
xrtJsonlReadFileфункция
Читает файл с общим лимитом ввода и разбирает построчно; при ошибке частичный Array не возвращается.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
sPath | вход | ненулевой путь, завершённый NUL | Читаемый файл либо целевой файл атомарной замены. |
pConfig | вход | не null; должен быть инициализирован | Конфигурация одной записи и накопительные бюджеты; источник не изменяется данным вызовом. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| не null | Array во владение вызывающего. | — |
| NULL | Ошибка аргументов, бюджета, синтаксиса или ресурсов. | Частичный результат не возвращается; ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_PROTOCOL— непустая строка не является одним полным корректным значением, либо в строгом режиме встречена пустая строка; ошибка одной записи сохраняет нижележащую цепочку причин.XERR_IO— файловая операция либо сбой выходного обратного вызова без конкретной ошибки; прочие Kind нижележащей причины сохраняются как есть.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
jsonl · Вызов xrtJsonlReadFile в полной программе; при ошибке переход к единой очистке.
pRead = xrtJsonlReadFile(Path, &Read); if ( pRead == NULL ) goto done;
xrtJsonlStringifyFileфункция
Полностью сериализует Array с конфигурацией по умолчанию, затем атомарно заменяет файл.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
sPath | вход | ненулевой путь, завершённый NUL | Читаемый файл либо целевой файл атомарной замены. |
pArray | вход | не null и имеет тип XVALUE_ARRAY | Сериализуемые элементы; вызов не потребляет владеющую ссылку вызывающего. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| true | Весь вывод завершён. | — |
| false | Операция не выполнена. | Частичный результат не возвращается; ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_TYPE— корень сериализации не Array.XERR_UNSUPPORTED— одно значение не кодируется выбранным форматом.XERR_IO— файловая операция либо сбой выходного обратного вызова без конкретной ошибки; прочие Kind нижележащей причины сохраняются как есть.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
jsonl · Вызов xrtJsonlStringifyFile в полной программе; при ошибке переход к единой очистке.
if ( !xrtJsonlStringifyFile(Path, pArray) ) goto done;
xrtJsonlWriteFileфункция
Полностью сериализует с расширенной конфигурацией, затем атомарно заменяет файл; при ошибке сериализации исходный файл сохраняется.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
sPath | вход | ненулевой путь, завершённый NUL | Читаемый файл либо целевой файл атомарной замены. |
pArray | вход | не null и имеет тип XVALUE_ARRAY | Сериализуемые элементы; вызов не потребляет владеющую ссылку вызывающего. |
pConfig | вход | не null; должен быть инициализирован | Конфигурация одной записи и накопительные бюджеты; источник не изменяется данным вызовом. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| true | Весь вывод завершён. | — |
| false | Операция не выполнена. | Частичный результат не возвращается; ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_TYPE— корень сериализации не Array.XERR_UNSUPPORTED— одно значение не кодируется выбранным форматом.XERR_IO— файловая операция либо сбой выходного обратного вызова без конкретной ошибки; прочие Kind нижележащей причины сохраняются как есть.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
jsonl · Вызов xrtJsonlWriteFile в полной программе; при ошибке переход к единой очистке.
if ( !xrtJsonlWriteFile(Path, pArray, &Write) ) goto done;
Индекс константконстанта
Следующие константы определены в заголовочном файле этой страницы; их смысл — в комментариях публичного заголовка.
| Константа | Описание |
|---|---|
| XJSONL_ERROR_CONFIG | См. комментарии в заголовке |
| XJSONL_ERROR_IO | См. комментарии в заголовке |
| XJSONL_ERROR_LIMIT | См. комментарии в заголовке |
| XJSONL_ERROR_OUTPUT | См. комментарии в заголовке |
| XJSONL_ERROR_RECORD | См. комментарии в заголовке |
| XJSONL_ERROR_STATE | См. комментарии в заголовке |
| XJSONL_ERROR_SYNTAX | См. комментарии в заголовке |
| XJSONL_ERROR_TYPE | См. комментарии в заголовке |
| XJSONL_READ_REJECT_EMPTY_LINES | См. комментарии в заголовке |