David Aguilar
5c7e11ea3f
maint: version-up and minimize where we mention the version
...
Remove the version number from tools/gen_large_yaml so that we
can avoid needing to update the version in two places.
2024-03-25 22:25:46 -07:00
John Vandenberg
6ec65e636f
fix typos
2024-03-25 14:52:44 +01:00
David Aguilar
d7f7c7ce15
yaml: add YamlLoader::load_from_parser(&Parser)
...
Make it easier to load documents from a prebuilt Parser.
2024-03-25 00:06:10 +01:00
David Aguilar
c00b27bb95
parser: add Parser::new_from_str(&str)
2024-03-25 00:06:10 +01:00
David Aguilar
61b0e70a4e
parser: fixup typos from github
2024-03-24 15:01:38 -07:00
David Aguilar
c8e82c00d1
parser: add a test for keep_tags(false)
...
Co-authored-by: Ethiraric <ethiraric@gmail.com>
2024-03-24 14:21:33 -07:00
David Aguilar
dec6bf35bb
parser: better document keep_tags
...
Co-authored-by: Ethiraric <ethiraric@gmail.com>
2024-03-24 14:21:33 -07:00
David Aguilar
150b6f0927
parser: add an option to keep tags across multiple documents
...
Documents are self-contained and tags defined in the first document are not
visible to subsequent documents.
Add support for having tags that span across all documents by making the
clearing of tags in the parser opt-out.
Closes : #10
2024-03-24 14:21:33 -07:00
David Aguilar
16f3ea39e1
yaml: add YamlLoader::documents() to get a read-only view of the parsed documents
2024-03-24 14:21:33 -07:00
Ethiraric
ee92e953f1
Switch from encoding
to encoding_rs
.
...
See https://github.com/rustsec/advisory-db/issues/1605 .
2024-03-24 17:14:44 +01:00
Ethiraric
3279baaab9
Fix rustdoc ignore directive.
2024-03-20 16:00:33 +01:00
Ethiraric
ccd7b6e718
Add missing_docs
warning.
2024-03-20 16:00:30 +01:00
Ethiraric
8247f481c7
Forgot to bump some v0.6.0 to v0.7.0.
2024-03-20 16:00:15 +01:00
Ethiraric
011e81ee85
Re-enable clippy warnings.
2024-03-19 18:18:59 +01:00
David Aguilar
cccf769b1c
Enable all clippy warnings
...
Rename Scanner::next() to Scanner::next_token() to avoid
confusiong with the Iterator trait.
2024-03-19 15:26:16 +01:00
David Aguilar
a120d93e7d
Enable the missing-errors-doc clippy checks
2024-03-19 15:26:16 +01:00
David Aguilar
9e505d552f
Eliminate panics and enable the missing panics docs check
2024-03-19 15:26:16 +01:00
David Aguilar
a42f26b306
Enable the redundant-else clippy checks
2024-03-19 15:26:16 +01:00
David Aguilar
e36369d69c
Enable the case-arms clippy checks
2024-03-19 15:26:16 +01:00
lincoln auster [they/them]
7b4422bb5d
implement borrowed_or
...
Allow the usage of `or` without consuming self. This can be useful
for pipelines that maintain some sort of owned state.
2024-03-19 15:26:16 +01:00
lincoln auster [they/them]
f8542f0f97
introduce or
function
...
Similarly to `or` for Rust's options, this patch provides a way to
'override' the value of a Yaml node if it's some form of error.
2024-03-19 15:26:16 +01:00
Marko Mikulicic
c32db2986c
Use a YamlDecoder builder to implement optional encoding_trap parameter.
2024-03-19 15:26:16 +01:00
Marko Mikulicic
5240918cac
Implement load_from_bytes
...
Also helps in some cases with #142 , when the BOM is at the beginning of
the file (common), but not in corner case where the BOM is at the start
of a document which is not the first one.
Closes : #155
2024-03-19 15:26:16 +01:00
Jim Turner
03e3047937
Add byte a offset to the error message
2024-03-19 15:26:16 +01:00
larkbyte
54ca9294fa
Replace linked_hash_map with hashlink
2024-03-19 15:26:16 +01:00
David Aguilar
5369a002ba
Emit multi-line string values as block scalars
2024-03-19 15:26:16 +01:00
Ethiraric
a33d0ffe68
Update to v0.6.
2024-03-15 20:14:26 +01:00
Ethiraric
e7a4f30627
Replace VecDeque
with ArrayDeque
.
...
This removes all allocations in the `Scanner` code. The downside is that
the buffer is now stored in the `Scanner` structure, making it 48 bytes
larger. This however makes the code much more performant.
2024-02-13 23:10:32 +01:00
Ethiraric
603c3c546f
Fix some clippy lints.
2024-02-13 23:10:17 +01:00
Ethiraric
e93947bcfe
Minor improvements.
2024-01-31 22:02:53 +01:00
Ethiraric
4fee65f27a
Improve scan_plain_scalar
readability.
...
Take whitespace checking out of the innermost loop for performance.
2024-01-25 03:06:18 +01:00
Ethiraric
28893c4567
Avoid a trip to self.buffer
.
...
`self.buffer` is a `VecDeque<char>`, meaning that characters are stored
on 4B. When reading as we used to do, this means that every 1 byte
character we read was turned into 4 bytes, which was turned into 1 byte
in `String::extend`.
Instead of going through `self.buffer`, use a local `String` to store
the characters before pushing them to `string`.
2024-01-24 23:02:02 +01:00
Ethiraric
2471c5793a
Buffer block scalar lines.
...
Instead of doing a loop that goes:
* fetch from input stream
* push char into string
Make a loop that fetches characters while they're not a breakz and
_then_ extend the string. This avoids a bunch of reallocations.
2024-01-24 21:45:18 +01:00
Ethiraric
7a51c3dfca
Split skip
into more specific variants.
...
This function is a hotpath and sometimes removing the conditional jump
to detect line breaks saves a bunch of instructions.
2024-01-24 20:20:52 +01:00
Ethiraric
666965ef4f
Doing this leads to worse performance.
2024-01-24 19:42:18 +01:00
Ethiraric
4153a98973
Pre-load chars in skip_block_scalar_indent
.
2024-01-24 19:31:45 +01:00
Ethiraric
980d5b0335
Help the compiler inline read_break
.
2024-01-24 17:14:52 +01:00
Ethiraric
bcdd725049
Remove debug prints code from release builds.
...
If building release mode, remove debug code. Now, the `debug_print!`
macro resolves to nothing in release build.
In debug build, don't check the environment for each print. This has a
huge overhead. The environment is only checked once and next checks are
made against a simple boolean value.
2024-01-24 02:22:02 +01:00
Ethiraric
06936742f2
Move char is_xxx
fn to their own file.
2024-01-24 01:02:20 +01:00
Ethiraric
2481df7f9d
Update licence, readme, doc.
2024-02-08 07:12:14 +01:00
Ethiraric
f2d0968a89
Fix null nodes with tags in flow constructs.
2024-01-23 00:19:04 +01:00
Ethiraric
4b37abf2b7
Fix tag scanning.
2024-01-23 00:19:04 +01:00
Ethiraric
84a7d2a0ab
Fix indent in block scalars.
2024-01-23 00:19:04 +01:00
Ethiraric
3868b83756
Fix dquote indentation.
2024-01-23 00:19:04 +01:00
Ethiraric
36c4f8951e
Fix dquote string escape sequences.
2024-01-23 00:19:04 +01:00
Ethiraric
71c54f318f
Fix tests related to anchor/alias indentation.
...
I have no idea what I'm doing.
2024-01-23 00:19:04 +01:00
Ethiraric
ca7579a3c9
Fix flow adjacent value with complex key.
2024-01-23 00:19:04 +01:00
Ethiraric
ef799af5eb
Fix use of dashes in flow contexts.
2024-01-23 00:19:04 +01:00
Ethiraric
c60099af9b
Fix block scalar / eof interactions.
2024-01-23 00:19:04 +01:00
Ethiraric
9b653e607b
Fix block scalars and document end interaction.
2024-01-23 00:19:04 +01:00