Commit graph

77 commits

Author SHA1 Message Date
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
maddymakesgames
5b3fa958b8 add Error and Display impls for LoadError 2024-04-07 01:52:24 +02:00
Ethiraric
30b713d7a7 yaml-rust2 -> saphyr 2024-04-02 18:49:52 +02:00
Ethiraric
f166970a3e Use cargo features. 2024-03-30 19:24:54 +01:00
Alistair Francis
0f1dedc584 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
David Aguilar
ddb6885a17 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
a5550d4203 yaml: add YamlLoader::documents() to get a read-only view of the parsed documents 2024-03-24 14:21:33 -07:00
Ethiraric
eddea11e01 Switch from encoding to encoding_rs.
See https://github.com/rustsec/advisory-db/issues/1605.
2024-03-24 17:14:44 +01:00
Ethiraric
c3ba2070e5 Add missing_docs warning. 2024-03-20 16:00:30 +01:00
Ethiraric
9133bb0a34 Re-enable clippy warnings. 2024-03-19 18:18:59 +01:00
David Aguilar
429813a0cd Enable the missing-errors-doc 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
lincoln auster [they/them]
2cf6436fb1 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]
5ba5dfa6e6 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
068525a6d7 Use a YamlDecoder builder to implement optional encoding_trap parameter. 2024-03-19 15:26:16 +01:00
Marko Mikulicic
7705e87ff6 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
larkbyte
e1119bb3bf Replace linked_hash_map with hashlink 2024-03-19 15:26:16 +01:00
Ethiraric
eed3433841 Update licence, readme, doc. 2024-02-08 07:12:14 +01:00
Ethiraric
abac504295 Minor improvements. 2024-01-23 00:19:04 +01:00
Ethiraric
5f6dc2246f Reslove tag directives. 2024-01-23 00:19:04 +01:00
Ethiraric
3f10cf9e5d Propagate tag to SequenceStart event. 2024-01-23 00:19:04 +01:00
Ethiraric
e6fdcddceb Propagate tag to MappingStart event. 2024-01-23 00:19:04 +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
Evan Harvey
35619eaa5c Spellcheck (#143)
* Spellcheck src

* Spellcheck README
2020-06-01 20:59:27 +08:00
Yuheng Chen
e35bbd7c5a fix CI for clippy 0.9 2020-06-01 20:34:13 +08:00
Anton Kochkov
5170d0374d Rust 2018 transition 2020-05-27 14:15:28 +08:00
Robin Stocker
3ae23d47de Fix handling of indicators in plain scalars to conform to YAML 1.2
YAML 1.2 has special handling of indicators to be compatible with JSON.
The following is equivalent to `{"a": "b"}` (note, no space after `:`):

    {"a":b}

But without the quoted key, a space is required. So the `:` here is part
of the plain scalar:

    {a:b}  # == {"a:b"}

A plain scalar can also start with a `:` as long as it's followed by
"safe" characters:

    {a: :b}  # == {"a": ":b"}

(Fixes #118)
2019-03-04 11:45:39 +11:00
Tibo Delor
3f8a60627f Format using rustfmt 1.0 2018-12-13 18:35:01 +11:00
David Tolnay
20190538af Replace try! with question mark 2018-09-15 23:58:48 -07:00
David Tolnay
f26a44bcdc Format with rustfmt 0.99.4 2018-09-15 09:49:08 -07:00
David Tolnay
1078665c32 Merge branch 'master' into prevent-too-deep-recursion 2018-09-15 09:16:25 -07:00
Konrad Borowski
b17fbe703c Prevent too deep recursion 2018-09-15 12:34:21 +02:00
Hendrik Sollich
2249926d86 Add tests to show expected indentation interpretation 2018-06-22 21:17:16 +02:00
Yuheng Chen
e14465c6a2 Fix warning 2018-01-02 14:57:27 +08:00
Christian Hofer
505b1d6ec1 Always pass events by value
- The EventReceiver gets ownership of events
- Breaks compatilibility with previous interface
2017-06-19 15:41:26 +02:00
Christian Hofer
f94a1deabe Allow clients ownership of events
Also: Optimize built-in Yaml deserializer to avoid one scalar value cloning step.
2017-06-14 10:29:27 +02:00
Hendrik Sollich
a2c9349417 correctly emitting nested arrays
fixed #70 too
2017-06-10 23:43:15 +02:00
Yuheng Chen
1bbe109b90 Allow use integer as key to access HashMap
Fix #61
2017-05-13 21:55:32 +08:00
Yuheng Chen
6ba376563b Parse special f64 in tag 2017-05-13 21:22:19 +08:00
Yuheng Chen
f43b50bbce Add special f64 parsing
Fix #51
2017-05-13 21:17:35 +08:00
Yuheng Chen
e5a2439494 Fix #65 2017-05-13 20:48:48 +08: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
Martin Hoffmann
ba9dbcfe8f Make YamlLoader implement MarkedEventReceiver. 2016-11-11 11:53:31 +01:00
Yuheng Chen
6d23811831 Fix clippy warning 2016-09-22 16:54:51 +08:00
Matthew Piziak
e8f4fcbb03 properly wrap Vec's IntoIter property 2016-08-08 18:21:57 -04:00
Matthew Piziak
9e77a839d3 remove clone from into_iter 2016-08-08 17:52:24 -04:00
Matthew Piziak
b600b3bafe implement IntoIterator for Yaml 2016-08-08 17:34:38 -04:00