Элементы header =============== Все три класса импортируются из ``bytespec``. Готовые экземпляры задаются в tuple ``__header__`` при объявлении модели. Практическое руководство: :doc:`../headers`; наследование: :doc:`../inheritance`. .. autoclass:: bytespec.Constructor Использует ``__constructor__`` (по умолчанию 1). При наличии этого элемента тип значения проверяется при сборке модели, диапазон — при encode. ``include_constructor=False`` в encode и ``expect_constructor=False`` в decode_from полностью пропускают элемент; это не режим чтения без проверки значения. Вложенные модели используют именно такой пропуск. .. autoclass:: bytespec.PayloadLength Длина всех полей после полного header, исключая весь header, независимо от позиции элемента. Без него decode_from возвращает конец известных полей и не задаёт отдельную границу body. .. autoclass:: bytespec.Flags Bitmap присутствующих optional-полей. ``Flags(1)`` вмещает биты 0–7, ``Flags(8)`` и ``Flags(VarUInt)`` — 0–63. При наличии optional-полей отсутствие этого элемента вызывает SchemaError при объявлении класса, включая подклассы с унаследованными полями. См. :ref:`header-validation`. Общий параметр ``encoding`` принимает ``1``, ``2``, ``4``, ``8`` (байты) или ``VarUInt`` из ``bytespec.types``. Другие представления вызывают ``SchemaError``. Порядок байтов представлений фиксированной длины задаёт модель. Эти элементы описывают вычисляемые и проверяемые служебные числа. Для пользовательских значений header используйте вложенную модель; добавлять их через внутренние контексты сборки схемы не требуется.