aboutsummaryrefslogtreecommitdiff
path: root/src/tokens.rs
AgeCommit message (Collapse)AuthorLines
2019-05-082018 edition idioms.Eric Huss-5/+5
2019-03-20Fix parsing of repeated delimiters inside multi-line stringsTomasz Miąsko-5/+9
The previous implementation of `read_string`, when looking for delimiters ending the multi-line string and failing to find exactly three in succession, always put a single delimiter back. This is incorrect when exactly two delimiters are present. Put back the correct number of delimiters depending on how many have been already consumed from input. The issue could be triggered only with `Owned` representation of `MaybeString`, since otherwise `push` operation is no-op.
2018-12-17Run `cargo fmt`Alex Crichton-158/+201
2018-10-27Allow whitespace after line ending backslash (#162)Joey Hain-1/+18
2018-09-25Fix multi-line strings are not allowed for keyrhysd-31/+39
In spec https://github.com/toml-lang/toml#keys Quoted keys are clarified as > he exact same rules as either basic strings or literal strings TOML clearly distinguishes basic string and multi-line basic string (literal string is also). https://github.com/toml-lang/toml#string So table key and quoted key should not allow multi-line basic string and multi-line literal string. ABNF definition also describes that. https://github.com/toml-lang/toml/blob/master/toml.abnf ``` string = ml-basic-string / basic-string / ml-literal-string / literal-string quoted-key = basic-string / literal-string ``` `string` contains `ml-*` but `quoted-key` doesn't.
2018-07-100.5: Reject 0x7f (DEL) in strings.Eric Huss-2/+2
cc #224
2018-05-09Merge pull request #239 from udoprog/spansAlex Crichton-8/+21
Support spans when deserializing serde structures
2018-05-09Treat unicode hex digits case-insensitivelyClaudio Bley-7/+4
In Rust >= 1.24.0 we could have used `char::is_ascii_hexdigit`, but to keep compatiblity with older versions, `char::is_digit(16)` is used. Fixes #240.
2018-05-07Adjust spans for more complex typesJohn-John Tedro-8/+21
2018-05-01Make Tokenizer emit spansJohn-John Tedro-71/+106
2018-04-16Replace try!() with ?Kornel-2/+2
2017-04-12Remove lifetimesDaniel Lockyer-1/+1
2017-04-12Simplify if-statementsDaniel Lockyer-1/+1
2017-04-12Remove unneeded return statementsDaniel Lockyer-1/+1
2017-02-21Relax assertions in substr_offset slightlyAlex Crichton-1/+1
Closes #152
2017-02-08Rewrite crate with serde support from ground upAlex Crichton-0/+620
This commit completely rewrites this crate from the ground up, supporting serde at the lowest levels as I believe serde support was intended to do. This is a major change from the previous versions of this crate, with a summary of changes being: * Serialization directly to TOML is now supported without going through a `Value` first. * Deserialization directly from TOML is now supported without going through a `Value`. Note that due to the TOML format some values still are buffered in intermediate memory, but overall this should be at a minimum now. * The API of `Value` was overhauled to match the API of `serde_json::Value`. The changes here were to: * Add `is_*` accessors * Add `get` and `get_mut` for one-field lookups. * Implement panicking lookups through `Index` The old `index` methods are now gone in favor of `get` and `Index` implementations. * A `Datetime` type has been added to represent a TOML datetime in a first-class fashion. Currently this type provides no accessors other than a `Display` implementation, but the idea is that this will grow support over time for decomposing the date. * Support for the `rustc-serialize` crate has been dropped, that'll stay on the 0.2 and 0.1 release trains. * This crate no longer supports the detection of unused fields, for that though you can use the `serde_ignored` crate on crates.io