* dumping doesn't work at CT
* timestamps don't work at CT
* aliases don't work at CT
* renamed tserialization -> tnative to mirror rename of native.nim file
* added comptime tests to tnative, currently only execute when doing
nim nativeTests, because of compiler bug
* Fixes#70, #91
* moved load procs to yaml/loading.nim
* moved input YamlStream into ConstructionContext
* made ConstructionContext a non-ref object
* harmonized code style & comments
* renamed yaml/serialization.nim to yaml/native.nim
* removed default value objects,
use Nim2 default vaules for fields instead.
* moved dump procs to yaml/dumping and introduced Dumper
* modified serialization procs to use ctx as first argument,
so that prefix calls can be used
* changed defaults for presentation to be more like other
YAML implementations, e.g. no directives by default.
* Removed deprecated procs in DOM API
* Removed PresentationStyle – use the setXStyle procs of Dumper
instead.
* Fixed some warnings emerging from transitioning to Nim2
* PresentationOptions has gained more fine-tuning options:
* directivesEnd: specifies when `---` is written. ref #135
* containers: specifies whether containers use block or flow style
* suppressAddrs: if set, suppresses output of attributes
* quoting: specifies how strings should be quoted
* condenseFlow: specifies whether flow sequences should be on a
single line
* explicitKeys: specifies whether mapping keys should always have '?'
* PresentationStyle is now a list of presets that set
multiple options in PresentationOptions.
* Does not output trailing spaces anymore. ref #135
* Writes compact notation, i.e. a mapping in a sequence starts on the
line with the sequence's `-`, unless attributes are written
* Added tests for the presenter
* Existing code might change behavior because of whitespace, `---` and
compact notation. The API has been extended so that existing code is
affected as little as possible.
Updated type hinting for YAML 1.2.
* previously outdated regexes from YAML 1.1 were used.
* removed special cases for leading zeros that are not part of YAML 1.2.
* updated literal regexes for infinity, NaN and boolean values.
* added tests for type hinting
Co-authored-by: theamarin <theamarin@thecreation.de>
* added maxLineLength to PresentationOptions. Fixes#119
* write a newline to the end of the document.
required for the output files to be POSIX-compliant text files.
also improves QoL when dumping to stdout.
Now check for content *and* length of the strings in
`tserialization`. Also adds a test case for the case with which the
old version would have failed (one string longer than the other, thus
being different).
This version tries to keep the error reporting mechanism the same as
the old version.