Dextrin
Table of Contents
Namespaces
- Binary
- Schema
- Text
- Value
Interfaces
- HasOffset
- Implemented by any exception that can report a byte/character
offset into the source it failed on (lexer/parser errors) -- lets
{@see DXNError::wrap()} preserve that offset without needing to
know about every concrete exception class in the text/binary
pipelines.
Classes
- Dextrin
- Public API entry point: `.dxn` text and `.dxnb` binary decode/
encode, plus `.dxns` schema-backed struct decoding and encode-time
validation via an optional {@see Registry}.
- DXNError
- One exception type for every `dextrin` failure mode -- text-parse,
printing, and (in later phases) binary/schema failures alike -- so
a caller never has to special-case which pipeline produced it.
- MapBuilder
- Builds a DXN `map` as a bare PHP array -- shared by the text
{@see \JOetjen\Dextrin\Text\Parser} and the binary
{@see \JOetjen\Dextrin\Binary\Decoder}, since both need identical
logic for the exact same reason: `map` is the one collection type
this port decodes to bare native `array` rather than a wrapper
class (see the project's own collections decision), and every
PHP-array-key coercion hazard that follows from that applies
equally regardless of which pipeline produced the raw key/value
pairs.
- Registry
- Extension point for both `struct` and `custom-tag` decoding/encoding.
- Schema
- Public entry point for `.dxns` schema compilation and validation.