Commit graph

249 commits

Author SHA1 Message Date
Ethiraric
c670b32461 Fix tab used as indentation checks. 2024-01-23 00:19:04 +01:00
Ethiraric
06a6fb34c1 Handle "!!" tag overriding. 2024-01-23 00:19:04 +01:00
Ethiraric
92e20e6eb4 Don't inherit tag directives between documents. 2024-01-23 00:19:04 +01:00
Ethiraric
5f6dc2246f Reslove tag directives. 2024-01-23 00:19:04 +01:00
Ethiraric
8da6ddef10 Remove _ prefix to used method. 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
3ffb231e40 Minor improvements.
* Doc comments
* Helper functions
* Line breaks for readability
2024-01-23 00:19:04 +01:00
Ethiraric
8c4ea2c838 Move emitter/scanner tests to their folder.
Change scanner's complex test:
```diff
-  *coffee:
+  *coffee :
     amount: 4
-  *cookies:
+  *cookies :
     amount: 4
```

According to https://play.yaml.io/main/parser, this example was invalid
in the first place. Adding a space makes it so that the colon is not
part of the alias name.

Also fix colons not being able to be part of anchors.
2024-01-23 00:19:04 +01:00
Ethiraric
ff2d5fc5b6 Expose ScanError::info.
From https://github.com/chyh1990/yaml-rust/pull/190.
2023-08-17 23:43:15 +02: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
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
92d775a448 Remove deprecated API 2020-05-27 14:19:22 +08:00
Anton Kochkov
5170d0374d Rust 2018 transition 2020-05-27 14:15:28 +08:00
Hendrik Sollich
de742fbcd6 Fix emitting hexlike strings without quotes
The emitter omitted quotes for strings that start with `0x` those would
subsequently be parsed as strings again. This should fix #133.
2019-07-24 16:40:02 +02:00
Yuheng Chen
508ed37d05 Bump to v0.4.3 2019-03-07 14:27:03 +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
9fc1b3f22d Address write_with_newline lint 2018-09-16 00:00:48 -07: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
dc1ed3d396 Lowercase the recursion limit error message
To be consistent with the other errors in this crate.
2018-09-15 13:09:11 -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
cedb185876 Escape string containing colon
I don't know whether this is always necessary but it is required for
correctly serializing `["x: %"]`. If we serialize this without quotes to
`[x: %]` then the result is not valid YAML.
2018-09-15 12:20:14 -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
1f0d33259b Address redundant_field_names lint 2018-09-15 10:06:34 -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
1078665c32 Merge branch 'master' into prevent-too-deep-recursion 2018-09-15 09:16:25 -07:00
David Tolnay
b09c5518da Merge pull request #104 from hoodie/feature/test-indentation-behaviour
Add tests to show expected indentation interpretation
2018-09-15 09:09:05 -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
Hannes De Valkeneer
2ad74a791b Do not quote hyphenated strings unnecessarily.
fixes #54
2018-04-20 21:01:45 +02:00
Yuheng Chen
6761ff9b48 fix boolean quotes
Fix #92
2018-01-03 21:44:54 +08:00
Yuheng Chen
e14465c6a2 Fix warning 2018-01-02 14:57:27 +08:00
Chen Yuheng
bf0ec957d2 Merge pull request #89 from marcaddeo/master
Add a cause() method to EmitError
2017-11-22 10:48:52 +08:00
cetra3
652e42d1c4 Include Scanner 2017-11-15 14:11:39 +10:30
cetra3
201c16217a Allow the Marker from ScanError 2017-11-15 12:06:16 +10:30
Marc Addeo
bccfe35587 Add a cause() method to EmitError
For compatibility with error_chain
2017-11-12 12:02:34 -05:00
Chen Yuheng
5923972e42 Merge pull request #80 from chris-m-h/pull-parser
Make pull parser accessible
2017-11-02 12:16:58 +08:00
Martin Hoffmann
b9b79a5cf8 Allow access to Marker’s content. 2017-09-02 13:49:53 +02:00
Christian Hofer
7471f27194 Replace ? by try! 2017-07-16 18:00:50 +02:00
Christian Hofer
b2f0df8e00 Extract pull parser. 2017-07-15 18:49:27 +02:00
David Tolnay
92809b3f8a Merge pull request #78 from chris-m-h/do-not-clone-on-peek
Parser: Do not clone on peeking
2017-07-11 07:04:59 -07:00
Charlie Ozinga
dc2e0a75c6 Merge branch 'master' of https://github.com/chyh1990/yaml-rust into chyh1990 2017-07-10 10:05:43 -06:00
Christian Hofer
2bc73c90a3 Fix version incompatibilities
Also: Fix clippy errors
2017-06-22 09:54:13 +02:00
Christian Hofer
75d1b53914 Parser: Do not clone on peeking
This eliminates calls to clone() and to_owned() in the parser

- Peeking now returns reference only
- To obtain value, fetch_token needs to be called
- The parser was adapted accordingly
- Also: Pass anchor name by value to register_anchor
2017-06-21 10:20:16 +02: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
da68aaff6d correctly emitting deeply nested arrays 2017-06-11 00:19:49 +02:00
Hendrik Sollich
a2c9349417 correctly emitting nested arrays
fixed #70 too
2017-06-10 23:43:15 +02:00
Charlie Ozinga
1cfd356df8 Move the compact flag into the emitter itself 2017-05-23 12:18:12 -06:00
Charlie Ozinga
4d64aa45ce Merge branch 'master' of https://github.com/chyh1990/yaml-rust into chyh1990 2017-05-23 11:51:19 -06:00
Hendrik Sollich
aa40cb2ffd quoting possible booleans
fixes #53
2017-05-22 19:32:08 +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
Charlie Ozinga
06c9b22357 Fix nested arrays, emit compact in-line 2017-05-11 23:29:41 -06:00
Charlie Ozinga
ff8572352d Rebased and resolved conflicts with the following:
https://github.com/chyh1990/yaml-rust/pull/66
https://github.com/chyh1990/yaml-rust/pull/62 (closed in favor of 66)
2017-05-11 12:36:38 -06:00
David Tolnay
45eae6fd07 Implement Error for EmitError
Fixes #50.
2017-05-08 11:43:44 -07:00
David Tolnay
37dc15badb Fix clippy complaints 2017-05-08 11:35:53 -07:00
David Tolnay
70795865c9 Switch from clippy dependency to cargo-clippy 2017-05-08 11:30:51 -07:00
David Tolnay
200d33cb4a Revert "fix test: add missing end space"
This reverts commit ae207a6f20.
2017-05-08 11:17:30 -07:00
David Tolnay
68ad6c6596 Merge pull request #67 from Iazel/patch-1
Quotes string starting with a dot
2017-05-08 11:16:27 -07:00
David Tolnay
c1abd67415 Merge pull request #66 from iredelmeier/trailing-whitespace
Do not emit trailing whitespace
2017-05-08 10:54:17 -07:00
David Tolnay
2a1bac3d56 Merge pull request #58 from palfrey/quickcheck
Fix quote escaping
2017-05-08 10:48:23 -07:00
David Tolnay
b3e287b21e Restore import that was broken in #57 2017-05-08 10:44:17 -07:00
Tom Parker
21049c8d6a Add quoting for " and ' 2017-05-08 18:37:19 +01:00
David Tolnay
15ce32bee8 Merge pull request #49 from dtolnay/order
Always preserve order
2017-05-08 10:29:27 -07:00
Iazel
ae207a6f20 fix test: add missing end space 2017-05-06 19:16:00 +02:00
Iazel
d6e14acbe6 Quotes string starting with a dot
To understand why we want to do this, please refer to this issue on ktmpl repository (a way to have templates for kubernetes):
https://github.com/InQuicker/ktmpl/issues/15

The problem applies only to string used as keys, but given that the emitters right now doesn't differentiate the two cases for string, I think is better to do it also for values instead of introducing branching and/or flag variables (can't think of cleaner solution for now).
2017-05-06 19:06:10 +02:00
Isobel Redelmeier
d0423912bb Do not emit trailing whitespace 2017-05-05 00:11:36 -07:00
Tom Parker
db7cc35e5c Remove warnings about unused items 2017-03-12 16:00:10 +00:00
David Tolnay
4243924689 Always preserve order 2017-01-27 20:59:51 -08:00
Yuheng Chen
864c7e0829 Use push_str() instead of extend() 2016-11-24 18:10:49 +08:00
Chen Yuheng
7e5f273d99 Merge pull request #46 from chyh1990/fix_emitter_space
Emitter: quote strings starts/ends with spaces
2016-11-24 18:01:51 +08:00
Yuheng Chen
6c7a07a18c Emitter: quote strings starts/ends with spaces 2016-11-24 17:24:02 +08:00
Yuheng Chen
f23be5e1cb Comment out unreachable states 2016-11-14 11:22:32 +08:00
Martin Hoffmann
ba9dbcfe8f Make YamlLoader implement MarkedEventReceiver. 2016-11-11 11:53:31 +01:00
Martin Hoffmann
685d5ba043 Introduce a new trait for event receivers that want markers. 2016-11-10 11:53:28 +01:00
Yuheng Chen
51f8fbf0e6 always quote empty string 2016-11-10 15:31:07 +08:00
Chen Yuheng
12744ffa40 Merge pull request #42 from partim/event-with-marker
Pass markers to EventReceiver.
2016-11-10 14:51:34 +08:00
Martin Hoffmann
439f0e68b2 Pass markers to EventReceiver. 2016-11-09 13:04:48 +01:00
Antoni Boucher
e1e4ed9c05 Fixed to always avoid quoting when possible. 2016-11-02 16:56:46 -04:00
Antoni Boucher
ef59ea712a Added an option to avoid emitting quotes. 2016-11-01 22:03:35 -04:00
Chen Yuheng
f058dbedbb Merge pull request #32 from hoodie/bug/emitter
fixed: emitter also emits complex keys
2016-10-21 13:12:55 +08:00
Hendrik Sollich
f54a6c3bff added test for emitting equivalence of complex keys 2016-09-24 23:59:09 +02:00
Yuheng Chen
6d23811831 Fix clippy warning 2016-09-22 16:54:51 +08:00
Hendrik Sollich
d0f4fc3abc fixed: emitter also emits complex keys 2016-09-16 23:32:53 +02: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
Matthew Piziak
a3fcf880ea add into_ counterparts for all as_ methods
fix #28
2016-08-07 22:25:30 -04:00
Yuheng Chen
ff90a2127c Use empty_scalar_with_anchor properly
This closes #27.
2016-07-28 17:36:25 +08:00
Hendrik Sollich
ca7956f429 Fix logic error that caused infinite loop 2016-06-23 00:22:03 +02:00
Yuheng Chen
fc774f2963 Rename NoEvent to Nothing to make clippy happy 2016-06-22 16:05:40 +08:00
Hendrik Sollich
27e11273c1 returning ScanError instead of running unreachable!()
fixes #23
2016-06-22 15:54:22 +08:00
Yuheng Chen
7cd23fe58d Fix assert fail on empty document
This closes #20
2016-05-25 13:25:56 +08:00
David Tolnay
82e2b2f5af Add preserve_order feature to use LinkedHashMap instead of BTreeMap 2016-03-20 17:24:06 -07:00
Chen Yuheng
776964a26c Merge pull request #14 from dtolnay/grammar
Grammar in rustdoc
2016-03-10 20:54:07 +08:00
Yuheng Chen
5fa1c5d7cc Fix clippy warnings about not 2016-03-10 20:49:24 +08:00
David Tolnay
7e296ce9b4 Grammar in rustdoc 2016-03-10 01:55:21 -08:00
David Tolnay
06732a6b77 Resolve remaining clippy lints and add to Travis build 2016-02-27 16:42:32 -08:00
David Tolnay
956f7625d1 Remove common suffix from TokenType enum
See https://github.com/Manishearth/rust-clippy/wiki#enum_variant_names
2016-02-27 15:29:36 -08:00
GaveUp
6b7de98875 Fix tests on 1.0.0 and 1.1.0. 2016-02-07 16:21:05 -06:00
GaveUp
61996a44c4 Add hex and octal integer support. 2016-02-07 15:52:20 -06:00
Yuheng Chen
071d338e0e Add alias deserialize support 2015-12-16 15:10:02 +08:00
Yuheng Chen
a29b0c12f6 Fix CR/LF in literal scalar 2015-09-15 15:27: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
m-r-r
34f81af101 Implementation of std::scanner::Error for ScanError 2015-06-18 23:49:28 +02:00
Yuheng Chen
d40b7cbdd2 Better code coverage 2015-06-04 16:10:43 +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
3af90353f6 Add LICENSE and build status 2015-05-31 00:13:21 +08:00
Yuheng Chen
e4862a7c8f Add tag:yaml.org,2002 parsing 2015-05-30 22:39:50 +08:00
Yuheng Chen
064f10beee Add scan_uri_escapes 2015-05-30 18:49:54 +08:00
Yuheng Chen
ec1cf5a223 Add scan_tag_directive_value 2015-05-29 02:57:41 +08:00
Yuheng Chen
68810253e8 Add alias event 2015-05-29 02:26:37 +08:00
Yuheng Chen
3d7a97ad32 Add partial anchor support 2015-05-29 01:56:03 +08:00
Yuheng Chen
169ec43039 Fix unicode escape 2015-05-28 22:19:06 +08:00
Yuheng Chen
4890b7de5b Add VersionDirectiveToken 2015-05-28 22:07:59 +08:00
Yuheng Chen
b4f94fdca7 Fix test_spec_ex7_3 2015-05-28 17:18:20 +08:00
Yuheng Chen
ce6b057bfe Add flow_sequence_entry_mapping 2015-05-27 23:18:38 +08:00
Yuheng Chen
b6acd869eb Fix parsing bugs
1. empty key & value support
2. OnNull handling in test
2015-05-27 23:04:03 +08:00
Yuheng Chen
ef020f0f95 Change empty scalar definition 2015-05-27 21:57:42 +08:00
Yuheng Chen
44b1b631e2 Add flow_mapping_key 2015-05-27 21:34:52 +08:00
Yuheng Chen
032a595dde Add indentless_sequence_entry 2015-05-27 16:35:31 +08:00
Yuheng Chen
616ebfa378 Refactory YAML document loader 2015-05-27 14:57:44 +08:00
Yuheng Chen
89b9c6b1db Add block_scalar 2015-05-27 00:29:40 +08:00
Yuheng Chen
1894d11a26 Add multidoc support 2015-05-26 16:41:35 +08:00
Yuheng Chen
998dbbef91 Add scanner unit tests 2015-05-25 19:32:48 +08:00
Yuheng Chen
fe07995ee4 Add scalar coersion 2015-05-25 13:54:39 +08:00
Yuheng Chen
b070a75ccb Add parse for Yaml 2015-05-25 03:29:52 +08:00
Yuheng Chen
2b73808939 Add scan_flow_scalar 2015-05-25 03:21:53 +08:00
Yuheng Chen
ae71367f3b Add Index trait for YAML node 2015-05-25 02:16:28 +08:00
Yuheng Chen
2e1416c509 Add yaml value coerce 2015-05-25 01:34:18 +08:00
Yuheng Chen
9fa4c839fc fix lookahead spelling 2015-05-24 14:38:54 +08:00
Yuheng Chen
1014e35108 Fix warnings 2015-05-24 14:37:36 +08:00
Yuheng Chen
5c25f78c7f Add empty_scalar() 2015-05-24 14:29:10 +08:00
Yuheng Chen
f8065b79c7 Initial commit 2015-05-24 14:27:42 +08:00