Commit graph

415 commits

Author SHA1 Message Date
Ethiraric
59048f68ae Code cleanup after monorepo-ing. 2024-10-13 14:42:50 +02:00
Ethiraric
8ee4921e5e Some cleanup after monorepo-ing.
- Update root `README.md`
- Remove `bench/` tools we no longer need
- Remove `.gitmodules` for `yaml-test-suite`
2024-10-12 16:29:33 +02:00
Ethiraric
3f9b8c22a3 Add yaml-test-suite as subtree. 2024-10-12 16:15:46 +02:00
David Aguilar
4e781f56c9 cargo: merge Cargo.toml files into a cargo workspaces 2024-10-04 00:35:06 -07:00
David Aguilar
3978720dc9 .gitignore: merge gitignores into a single top-level file 2024-10-04 00:34:35 -07:00
Ethiraric
57d2ff4b19 Convert to monorepo. 2024-10-03 13:55:58 +02:00
jneem
d3b9641125 Remove bad assert. (#11)
We reserve bufmaxlen bytes in the string, but then proceed to push
up to bufmaxlen chars. Therefore it is possible that the string will
need to reallocate. A different solution would be to reserve
4*bufmaxlen bytes. Removing the assert is probably ok, because the
attempt to pre-allocate is just a performance optimization.
2024-09-13 23:17:23 +02:00
Eduardo Sánchez Muñoz
e215f546f3 Remove all unsafe code.
* Use `str::strip_prefix` to avoid using `str::from_utf8_unchecked`
* Avoid most uses of `extend_left` unsafe function
* Remove `Input::push_back` and remaining unsafe
2024-08-12 17:06:14 +02:00
Eduardo Sánchez Muñoz
6c57b5b5e4 Add "explicit" flag to Event::DocumentStart (#5)
Allows the event consumer to know whether the document explicitly starts with a `---`
2024-08-05 17:23:04 +02:00
jneem
926fdfb01b Use spans instead of markers (#3) 2024-08-05 17:08:23 +02:00
Ethiraric
4a5241e0bb Improve buffer handling in scan_plain_scalar. 2024-08-05 01:11:13 +02:00
Ethiraric
7275141203 Add run_bench to Cargo.toml. 2024-07-14 17:01:44 +02:00
Ethiraric
93b7e55bcf Move scanning low-level functions to Input. 2024-07-14 17:01:44 +02:00
Ethiraric
696ca59a16 Move next_can_be_plain_scalar to Input trait. 2024-07-14 17:01:44 +02:00
Ethiraric
8d7c3a1c1b Move skip_ws_to_eol to Input trait. 2024-07-14 17:01:44 +02:00
Ethiraric
db4f26da42 Add StrInput. 2024-07-14 17:01:44 +02:00
Ethiraric
0e9cee18f2 Move buffered_input to an input module. 2024-07-14 17:01:44 +02:00
Ethiraric
65fcb6fde3 Move next_can_be_plain_scalar as free fn.
This is, for some reason, a huge pessimization. `rustc` fails to
optimize it as well as it did when it was part of `Scanner`.

This is however kinda needed if I want to avoid having this code
duplicated in every implementation of the input.
2024-07-14 17:01:44 +02:00
Ethiraric
986c45a8b4 Add custom commands I don't want to forget. 2024-07-14 17:01:44 +02:00
Ethiraric
693cc19042 Avoid too many lookaheads in scan_plain_scalar. 2024-07-14 17:00:10 +02:00
Ethiraric
d27bae9fa5 Fix debug_prints in release mode. 2024-07-14 17:00:10 +02:00
Ethiraric
93a35ab6f7 Move document indicator detection to Input. 2024-07-14 17:00:10 +02:00
Ethiraric
afa1b2319f Remove 1 line wrappers. 2024-07-14 17:00:08 +02:00
Ethiraric
f8b6d849d3 Performance improvement.
The refactoring added `next_is` which takes a `&str` as parameter, while
we only use it with strings of lengths 2 and 3. Replacing this by 2
dedicated methods (which can be added to the trait interface and only
specialized if needed) removes almost all the overhead that was added by
`Input`.
2024-07-14 16:59:10 +02:00
Ethiraric
d9bb7a1693 Add Input interface.
Hiding character fetching behind this interface allows us to create more
specific implementations when is appropriate. For instance, an instance
of `Input` can be created for a `&str`, allowing for borrowing and more
efficient peeking and traversing than if we were to fetch characters one
at a time and placing them into a temporary buffer.
2024-07-14 16:59:09 +02:00
Ethiraric
11cffc6df8 Fix issue with deeply indented block scalars.
Fixes #2
2024-07-14 16:57:26 +02:00
Ethiraric
750c992121 Add support for nested implicit flow mappings.
These are corner cases not tested by the `yaml-test-suite`.
Parsing for the reported input has been fixed, as well as other
similar-looking inputs which make use of nested implicit flow mappings
and implicit null keys and values.

Fixes #1.
2024-07-02 01:56:34 +02:00
Ethiraric
60f8919565 v0.0.2 2024-06-13 22:18:27 +02:00
Ethiraric
f8f6281e41 Add Marker::default and pub to new. 2024-06-13 22:17:54 +02:00
Ethiraric
c3d83fbfe1 Fix warnings. 2024-06-13 22:05:43 +02:00
Ethiraric
777fdaa17d Add time_parse binary to Cargo.toml. 2024-04-16 17:31:06 +02:00
Ethiraric
9ee2d113bc Fix error with comments after tags. 2024-04-16 12:03:42 +02:00
Ethiraric
cbba46fa72 Have ScanError::new take a String.
Internally, `ScanError` stores a `String`. Having `new` take a `&str`
misleadingly indicates that it stores a `&str`. This commit changes
`new` so that it takes a `String`, and adds a convenience method,
`new_str` that takes a `&str` and allocates a `String` for it.
2024-04-07 02:04:45 +02:00
Ethiraric
3b1dee5ef7 Remove deprecated method implementations of Error. 2024-04-07 02:01:26 +02:00
Ethiraric
bdcf7f48f9 Remove yaml-rust2 dependency from tests. 2024-04-02 23:08:39 +02:00
Ethiraric
737f9d0ab1 Improve Parser's next() option handling. 2024-04-02 23:06:15 +02:00
Ethiraric
40670f3c48 Minor improvements. 2024-04-02 23:06:08 +02:00
Ethiraric
3365ccadb6 Readability improvement in tag handling. 2024-04-02 23:00:33 +02:00
Ethiraric
6b01b554e0 yaml-rust2 -> saphyr-parser
* Drop non-parser files
* Rename everything
* Fix tests
* Start rewriting a bit of docs
2024-04-02 17:14:06 +02:00
Ethiraric
787403daa1 Messed up the MSRV. 2024-03-30 19:39:53 +01:00
Ethiraric
c90c1ed1fb Use cargo features. 2024-03-30 19:24:54 +01:00
Alistair Francis
1fb76ae745 yaml: Implement IndexMut
This implements the IndexMut trait for Yaml. This allows indexing the
Yaml type while having a mutable reference.

Unlike the Index, this will panic on a failure. That is allowed as per
the Rust documentation [1]. We don't have the option of returning a
mutable reference to BAD_VALUE as that is unsafe. So instead we just
panic.

1: https://doc.rust-lang.org/std/ops/trait.IndexMut.html#tymethod.index_mut

Resolves: https://github.com/chyh1990/yaml-rust/issues/123
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Co-authored-by: Ethiraric <ethiraric@gmail.com>
2024-03-30 18:52:39 +01:00
Ethiraric
bf2aaf8044 Add doc checks to before_commit. 2024-03-28 21:06:32 +01:00
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
David Aguilar
f34c6869f1 yaml-rust2 v0.8.0 2024-03-25 22:18:38 -07:00
David Aguilar
67ec4899c0 CHANGELOG: mention the linguist development-related updates 2024-03-25 22:18:37 -07:00
David Aguilar
3f128e806c garden: access yaml-rust2 pull requests as yaml-rust2/pull/* 2024-03-25 22:18:37 -07:00
David Aguilar
728bd8b391 garden: update urls and remove old forks and links
We have the commits in git now.
2024-03-25 22:18:37 -07:00
Spenser Black
c7689fb84b Add linguist attributes for tests/*.rs.inc files
This informs Linguist (used by GitHub) that these files are Rust (they
are currently detected as C++). This also marks them as generated.
2024-03-25 20:11:04 +01:00
John Vandenberg
6ec65e636f fix typos 2024-03-25 14:52:44 +01:00