Commit graph

419 commits

Author SHA1 Message Date
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
David Aguilar
697550e112 README: update the installation snippet to use yaml-rust2 0.7 2024-03-24 17:00:57 -07:00
David Aguilar
77bf4eaeef README: add self-links to make things more discoverable
If someone lands on one of our forks on github there are still UI elements
that point them back to the original chyh1990 yaml-rust project.

Add links to make it easier to navigate back to the main fork when
viewing a yaml-rust2 fork.
2024-03-24 17:00:19 -07: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
86f008196c CHANGELOG: simplify the formatting and document YamlLoader::documents() 2024-03-24 14:45:52 -07:00
David Aguilar
06708ee787 CHANGELOG: document the keep_tags API addition 2024-03-24 14:27:04 -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
Gregor Purdy
c5c9f4af16 Typo fix 4 in 2024-03-15-FirstRelease.md 2024-03-21 14:22:39 +01:00
Gregor Purdy
6e9351f84b Typo fix 3 in 2024-03-15-FirstRelease.md 2024-03-21 14:22:14 +01:00
Gregor Purdy
a4ce3e9696 Typo fix 2 in 2024-03-15-FirstRelease.md 2024-03-21 14:22:00 +01:00
Gregor Purdy
f5cb266a43 Typo fix 2024-03-21 14:21:26 +01:00
Ethiraric
580d7b0525 Remove no longer needed test files.
These tests were sucecssfully converted to Rust files to include and are
no longer necessary in this repository.
Should they become relevant again in the future, they can always be
checked out from a previous commit.
2024-03-21 12:37:10 +01:00
Ethiraric
2fe52cf1c2 Run CI only on master pushes. 2024-03-21 12:33:00 +01:00
Ethiraric
0f97d2b9e4 Make gen_large_yaml reproductible.
* Use a seedable RNG so that we can have the same number sequence.
* Replace `HashMap`s with `Vec`s to avoid undeterministic iteration.
2024-03-20 23:07:08 +01:00
Ethiraric
60bf9c80ba Edit v0.6 post with cargo alias. 2024-03-20 21:39:38 +01:00
Ethiraric
3279baaab9 Fix rustdoc ignore directive. 2024-03-20 16:00:33 +01:00