Commit graph

49 commits

Author SHA1 Message Date
Ethiraric
23c0b3c547 Move load_from_* functions in Yaml.
This would make more sense in user code:
```rs
Yaml::load_from_str("foo"); // Explicit that we're parsing YAML
load_from_str("foo"); // Too implicit, too generic, may be from another
                         lib
```

Plus, this mirrors `MarkedYaml`'s behavior.
2024-07-03 00:55:41 +02:00
Ethiraric
842d536cb0 Implement LoadableYamlNode for MarkedYaml.
A few changes have had to be made to `LoadableYamlNode`:
  * The `From<Yaml>` requirement has been removed as it can be
    error-prone. It was not a direct conversion as it is unable to
    handle `Yaml::Hash` or `Yaml::Array` with a non-empty array/map.
  * Instead, `from_bare_yaml` was added, which does essentially the same
    as `From` but does not leak for users of the library.
  * `with_marker` has been added to populate the marker for the `Node`.
    The function is empty for `Yaml`.

`load_from_*` methods have been added to `MarkedYaml` for convenience.
They load YAML using the markers.

The markers returned from `saphyr-parser` are not all correct, meaning
that tests are kind of useless for now as they will fail due to bugs
outside of the scope of this library.
2024-07-03 00:55:41 +02:00
Ethiraric
9ab8dd7c07 Update doccomments. 2024-07-03 00:55:41 +02:00
Ethiraric
d2caaf2ab3 Prepare the ground for annotated parsing.
* Make `YamlLoader` generic on the type of the `Node`. This is required
   because deeper node need to have annotations too.
 * Add a `LoadableYamlNode` trait, required for YAML node types to be
   loaded by `YamlLoader`. It contains methods required by `YamlLoader`
   during loading.
 * Implement `LoadableYamlNode` for `Yaml`.
 * Take `load_from_str` out of `YamlLoader` for parsing non-annotated
   nodes. This avoids every user to specify the generics in
   `YamlLoader::<Yaml>::load_from_str`.
2024-07-03 00:55:41 +02:00
Ethiraric
425f00ceb8 Add base support for annotated YAML objects. 2024-07-03 00:55:41 +02:00
Ethiraric
2b8eb3f62b Split yaml.rs into sizeable files. 2024-06-10 20:28:13 +02:00
Ethiraric
30b713d7a7 yaml-rust2 -> saphyr 2024-04-02 18:49:52 +02:00
Ethiraric
d618d06061 Messed up the MSRV. 2024-03-30 19:39:53 +01:00
Ethiraric
f166970a3e Use cargo features. 2024-03-30 19:24:54 +01:00
David Aguilar
2dc9e2c13f 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
Ethiraric
c3ba2070e5 Add missing_docs warning. 2024-03-20 16:00:30 +01:00
Ethiraric
a06ba5205a Forgot to bump some v0.6.0 to v0.7.0. 2024-03-20 16:00:15 +01:00
Ethiraric
9133bb0a34 Re-enable clippy warnings. 2024-03-19 18:18:59 +01:00
David Aguilar
c1145fc814 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
429813a0cd Enable the missing-errors-doc clippy checks 2024-03-19 15:26:16 +01:00
David Aguilar
4c64feb5ad Eliminate panics and enable the missing panics docs check 2024-03-19 15:26:16 +01:00
David Aguilar
04f8b99f49 Enable the redundant-else clippy checks 2024-03-19 15:26:16 +01:00
David Aguilar
f4c4e2ee4a Enable the case-arms clippy checks 2024-03-19 15:26:16 +01:00
larkbyte
e1119bb3bf Replace linked_hash_map with hashlink 2024-03-19 15:26:16 +01:00
Ethiraric
e4ae1d0546 Update to v0.6. 2024-03-15 20:14:26 +01:00
Ethiraric
5789169ceb 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
b4f66c457a Move char is_xxx fn to their own file. 2024-01-24 01:02:20 +01:00
Ethiraric
eed3433841 Update licence, readme, doc. 2024-02-08 07:12:14 +01:00
Ethiraric
0c4a395829 Add documentation and move tests to their folder. 2023-08-17 23:16:06 +02:00
Ethiraric
fd37ebd6e5 Clippy set to pedantic. 2023-08-14 16:11:33 +02:00
Alexander Kjäll
b6e65fb359 library is now in the crates repo (#164) 2021-07-12 15:48:17 +08:00
Yuheng Chen
bb249d9b36 Bump to v0.4.5 2021-01-03 11:57:28 -08:00
Yuheng Chen
a833b49831 Bump to v0.4.4 2020-06-01 21:02:16 +08:00
Anton Kochkov
5170d0374d Rust 2018 transition 2020-05-27 14:15:28 +08:00
Yuheng Chen
508ed37d05 Bump to v0.4.3 2019-03-07 14:27:03 +08:00
David Tolnay
20190538af Replace try! with question mark 2018-09-15 23:58:48 -07:00
David Tolnay
e73d5d0256 Release 0.4.2 2018-09-15 13:09:48 -07:00
David Tolnay
fd169229b0 Release 0.4.1 2018-09-15 12:31:11 -07:00
David Tolnay
5443ce4368 Set html_root_url 2018-09-15 12:30:27 -07:00
David Tolnay
ef9b526d59 Ignore should_implement_trait lint
The Parser::next method is already a public API.
2018-09-15 10:07:05 -07:00
David Tolnay
760f4f86d0 Don't yet use tool attrs because they are not stable 2018-09-15 10:02:56 -07:00
David Tolnay
f26a44bcdc Format with rustfmt 0.99.4 2018-09-15 09:49:08 -07:00
David Tolnay
70795865c9 Switch from clippy dependency to cargo-clippy 2017-05-08 11:30:51 -07:00
David Tolnay
4243924689 Always preserve order 2017-01-27 20:59:51 -08:00
David Tolnay
82e2b2f5af Add preserve_order feature to use LinkedHashMap instead of BTreeMap 2016-03-20 17:24:06 -07:00
David Tolnay
06732a6b77 Resolve remaining clippy lints and add to Travis build 2016-02-27 16:42:32 -08:00
Yuheng Chen
e8f754bb9e Display error line and col number for ScanError 2015-07-02 23:46:04 +08:00
Yuheng Chen
87539f852d remove trailing space 2015-06-30 00:31:22 +08:00
Yuheng Chen
51f3a66dd2 Add document 2015-05-31 17:59:43 +08:00
Yuheng Chen
83a57e7ada Export API 2015-05-31 17:02:22 +08:00
Yuheng Chen
24d4fad5cf Add basic emitter 2015-05-31 12:56:45 +08:00
Yuheng Chen
b070a75ccb Add parse for Yaml 2015-05-25 03:29:52 +08:00
Yuheng Chen
2e1416c509 Add yaml value coerce 2015-05-25 01:34:18 +08:00
Yuheng Chen
f8065b79c7 Initial commit 2015-05-24 14:27:42 +08:00