Commit graph

366 commits

Author SHA1 Message Date
Eric Huss 0737f0b27a 2018 edition idioms. 2019-05-08 17:37:38 -07:00
Eric Huss 68fd59c78d Migrate to 2018 edition. 2019-05-08 12:12:14 -07:00
Eric Huss 10fb80090c Bump html_root_url version. 2019-04-25 11:15:42 -07:00
Constantin Nickel a622bd414c implement From<toml::value::Table> for toml::Value 2019-04-08 23:58:16 +02:00
Eric Huss 816b457c84 Fix float with invalid suffix. 2019-04-05 13:51:28 -07:00
Eric Huss 743cfcef05 Merge pull request #295 from ErichDonGubler/fix_warnings
Fix warnings for deprecated usages of trim_{left,right}_matches.
2019-04-02 10:50:33 -07:00
Erich Gubler d34e734b39 Fix warnings for deprecated usages of trim_{left,right}_matches. 2019-04-02 09:35:28 -06:00
Erich Gubler a6071c7aac Make importing toml_internal macro unnecessary when using the toml macro 2019-04-02 09:32:51 -06:00
Tomasz Miąsko a5046008e5 Fix parsing of repeated delimiters inside multi-line strings
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.
2019-03-20 17:58:14 +01:00
Abid Omar 861a7be7d4 Add PartialEq to Toml::de
Add PartialEq trait to Error, ErrorInner and ErrorKind.

Relevant issue: https://github.com/alexcrichton/toml-rs/issues/291
2019-03-11 18:38:50 +01:00
Eric Huss b7493c9bef Fix case sensitivity with T, Z, and E. 2019-02-19 10:59:42 -08:00
Alex Crichton 7c969432ad Merge pull request #278 from Kerollmops/master
Add the preserve_order feature (rebased version)
2019-01-08 15:24:40 -08:00
Alex Crichton 184d16b4a3 Fix disallowing duplicate table headers
This commit fixes #279 where a case of duplicate table headers slipped
through the cracks. This also adds an option to disable this new
validation to allow Cargo to preserve backwards compatibility.
2019-01-07 09:06:04 -08:00
Vincent Prouillet 8621ab27ae Add the preserve_order feature 2018-12-28 14:42:55 +01:00
Alex Crichton cbfc4e18f8 Run cargo fmt 2018-12-17 17:45:35 -08:00
Alex Crichton 7845df9ff9 Merge pull request #264 from azriel91/feature/225/externally-tagged-enums
Issue 255: Externally tagged enum deserialization
2018-11-28 09:50:38 -06:00
Alex Crichton 88be3b70a7 Merge pull request #276 from ehuss/fix-version
Indicate this is now supporting version 0.5 of TOML.
2018-11-21 11:55:29 -06:00
Eric Huss 57e78ee3bc Indicate this is now supporting version 0.5 of TOML. 2018-11-21 09:41:57 -08:00
Eric Huss b21dd8cf05 Fix trailing space after date.
The space between date and time was being eagerly skipped when it shouldn't.
2018-11-21 09:35:50 -08:00
Azriel Hoh cd6373a9ab Maintain backward compatibility with Rust 1.15, take 3. 2018-11-17 14:19:14 +13:00
Azriel Hoh 752bf0d4a1 Only validate table keys against fields when deserializing enum.
Issue #225
2018-11-17 13:37:24 +13:00
Azriel Hoh 5bcf6f7cb6 Maintain compatibility with Rust 1.15
Issue #225
2018-11-17 13:36:38 +13:00
Azriel Hoh 1656e2e51d Error when deserializing struct if encountering unknown fields.
Issue #225
2018-11-12 10:09:30 +13:00
Azriel Hoh a0295b3308 Maintain compatibility with Rust 1.15
Issue #225
2018-11-10 11:10:34 +13:00
Azriel Hoh a4928a47a8 Implemented deserialization for external enums.
Issue #225
2018-11-10 11:10:31 +13:00
Azriel Hoh 7777c1452f Better error handling when parsing tuples.
Issue #225
2018-11-10 11:07:26 +13:00
Azriel Hoh 4f28c2f639 Implemented enum tuple deserialization.
Issue #225
2018-11-10 11:07:23 +13:00
Azriel Hoh f5d14af5a6 Implement deserialization for unit and struct variants.
Issue #225
2018-11-10 11:06:34 +13:00
Alex Crichton 80d2cf081d Merge pull request #271 from spease/allow-newtype-key
Allow newtype key
2018-10-29 09:57:55 -07:00
Alex Crichton 14f8934bef Merge pull request #268 from jmhain/allow-ws-after-bs
Allow whitespace after line ending backslash (#162)
2018-10-29 09:47:56 -07:00
hcpl 5636a7430e Support tuple Serde types for Value 2018-10-28 12:36:40 +02:00
Steven Pease d75c9ccd00 Allow newtype key 2018-10-27 18:28:18 -07:00
Joey Hain a9fb3bf188 Allow whitespace after line ending backslash (#162) 2018-10-27 12:49:17 -07:00
Matti Niemenmaa dce343e926 Avoid panic on pretty string ending in single quote
Fixes #262.
2018-10-01 11:58:57 +03:00
rhysd 935d95ce4f Fix multi-line strings are not allowed for key
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-09-25 16:33:52 +09:00
Alex Crichton 48daf82e1a Merge pull request #255 from kornelski/master
Support deserializing from other integer types
2018-08-06 10:17:30 -05:00
Kornel 985e21003f Support deserializing from other integer types 2018-08-05 23:25:06 +01:00
Eric Huss 36a5318feb Support the new 0.5 syntax in the toml! macro.
- Space in datetime.
- +- inf, nan, 0.0
- Dotted keys.
2018-08-05 14:26:46 -07:00
Eric Huss fad5f4690e Don't allow intermixing inline tables and dotted key tables. 2018-07-27 11:49:30 -07:00
Eric Huss e0a820be2f Support older rustc. 2018-07-16 09:10:38 -07:00
Eric Huss 6d76b19b58 0.5: Support dotted keys.
cc #224
2018-07-16 09:10:38 -07:00
Eric Huss c8919e8ed1 0.5: Support hex/oct/bin integers.
cc #224
2018-07-11 09:21:29 -07:00
Alex Crichton 625d2a18bb Merge pull request #251 from ehuss/datetime-space
0.5: Support space separator in datetime.
2018-07-11 09:05:26 -05:00
Alex Crichton 4971310a96 Merge pull request #250 from ehuss/reject-del
0.5: Reject 0x7f (DEL) in strings.
2018-07-11 09:04:29 -05:00
Eric Huss 16d8b14fcf 0.5: Support floats nan, inf, and +/-0.0.
cc #224
2018-07-11 00:50:04 -07:00
Eric Huss 86d9dd21d8 0.5: Reject 0x7f (DEL) in strings.
cc #224
2018-07-10 18:13:06 -07:00
Eric Huss 5204d8b50a 0.5: Support space separate in datetime.
cc #224
2018-07-10 17:14:16 -07:00
Alex Crichton 2a15817c47 Support fixed-length arrays
Turns out these are deserialized/serialized as tuples! While we're at it add
support for tuple variants and tuple structs through the same paths.

Closes #244
2018-05-24 07:25:42 -07:00
Alex Crichton 98d997c1fd Merge pull request #239 from udoprog/spans
Support spans when deserializing serde structures
2018-05-09 16:48:58 -05:00
Claudio Bley 96ca73e130 Treat unicode hex digits case-insensitively
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-09 22:18:14 +02:00
John-John Tedro 0616d3562c Make spanned module private and hide internals 2018-05-09 21:54:22 +02:00
John-John Tedro 407845d620 Fix incorrectly reported spans for Datetime 2018-05-07 05:36:41 +02:00
John-John Tedro 8a9ae07de5 Use BorrowedStrDeserializer instead of generated key deserializers 2018-05-07 04:57:16 +02:00
John-John Tedro 09c8957ae7 Adjust spans for more complex types 2018-05-07 04:28:00 +02:00
John-John Tedro 6b919f8833 Use custom struct/field naming to deserialize spans 2018-05-07 04:28:00 +02:00
David Tolnay 6db43965f9 Proof of concept: reporting span information to a Spanned<T> type 2018-05-06 11:06:00 +02:00
John-John Tedro 6d7c89169b Make Tokenizer emit spans 2018-05-01 13:53:52 +02:00
Kornel 6cf0d5de33 Replace try!() with ? 2018-04-16 02:12:39 +01:00
David Tolnay eab7d806e9 A toml macro 2017-11-12 23:46:34 -08:00
Alex Crichton a3f02da0c3 Merge pull request #213 from behnam/doc
[value] Fix some method docs
2017-09-15 09:07:55 -05:00
Behnam Esfahbod ✅ b7af13e689 [value] Fix some method docs 2017-09-14 22:37:51 -07:00
Alex Crichton dd4c5131eb Fix a number of compile warnings 2017-08-28 07:40:48 -07:00
Garrett Berg d386be1a49 add pretty_string_literal to be able to disable literal strings 2017-08-13 17:19:02 -06:00
Garrett Berg 76f11f2033 add spaces between array items and test for them 2017-08-13 15:31:09 -06:00
Alex Crichton ea0c2296e6 Merge pull request #204 from vitiral/rc_settings
reference count settings to bump performance a bit
2017-07-31 10:58:48 -05:00
Garrett Berg 9443fbf01f back out doc changes for now 2017-07-30 10:19:32 -06:00
Garrett Berg eb69fee5ff doc fixes 2017-07-30 10:18:00 -06:00
Garrett Berg 003a65fc9f reference count settings to bump performance a bit 2017-07-29 00:41:35 -06:00
Garrett Berg 54a4833bc1 add """ for non-literals with newlines, clean up logic and add tests 2017-07-28 09:25:53 -06:00
Garrett Berg dabe477d64 make single lines also pretty 2017-07-28 07:14:37 -06:00
Garrett Berg 83be829f0b fix bugs with pretty 2017-07-27 22:01:36 -06:00
Garrett Berg 61ff3c295c close #199: add header information for empty structs
- also add test which fails without this change
- also add a few helpful unit tests to table
2017-07-27 07:03:52 -06:00
Garrett Berg 203b4d43c2 fix Serializer::pretty_array(false) 2017-07-24 09:46:24 -06:00
Garrett Berg fba6170b95 use ignore rather than no_run for toml blocks 2017-07-24 09:18:47 -06:00
Garrett Berg ec82e695ba fix docs and add 2017-07-22 15:11:23 -06:00
Garrett Berg 973e4cc8c7 fix " 2017-07-21 12:03:42 -06:00
Garrett Berg 1e060c55d6 use builder pattern 2017-07-20 12:47:51 -06:00
Garrett Berg 3ec47e6758 pretty arrays 2017-07-09 15:20:29 -06:00
Garrett Berg 27757113ec array doesn't break anything... 2017-07-09 15:10:36 -06:00
Garrett Berg fe894fee6c add pretty sting serialization 2017-07-09 14:58:48 -06:00
Garrett Berg 36a4ebd3bf add Settings struct 2017-07-09 14:38:48 -06:00
Alex Crichton 66bbdb36a6 One more case of handling newtype structs 2017-07-06 11:43:36 -07:00
Alex Crichton 7a8c535c5a Support deserializing newtypes
Closes #196
2017-07-06 07:34:45 -07:00
debris eb138b12b9 updated toml version in the docs 0.4.2 2017-06-23 23:16:25 +02:00
Sergio Benitez 7f9e594e47 Use 'into()' to convert numerical values safely 2017-06-19 17:49:55 -07:00
Sergio Benitez f936fcfb13 Add exhaustive From<T> impls for Value 2017-06-18 03:06:19 -07:00
Pit Kleyersburg e89345af42 Implement IntoDeserializer for Value 2017-06-11 17:44:41 +02:00
Alan Du 5d36195f2d Store fractional seconds as a u32 instead of a f64
Drops precision down to the nanoseconds
2017-06-01 23:22:35 +01:00
Alan Du ce7b96c47b Add toml::ser::Error::KeyNewline back in
Avoid a breaking change
2017-06-01 22:47:24 +01:00
Alan Du bad367cab0 Allow serializing keys with \n in them
Use special quoted form

Closes https://github.com/alexcrichton/toml-rs/issues/185
2017-06-01 20:59:26 +01:00
Alan Du 4e246b2142 Truncate fractional seconds to picoseconds
Close https://github.com/alexcrichton/toml-rs/issues/186
2017-06-01 20:57:06 +01:00
Alan Du d8cc119799 Close #180 2017-06-01 12:42:16 +01:00
Alex Crichton 9a8c5d8e96 Merge pull request #183 from alanhdu/invalid_number
Better invalid number handling
2017-05-30 19:37:44 -05:00
Alan Du 87f51b38d1 Error when trying to serialize invalid float 2017-05-31 00:30:58 +01:00
Alan Du 90040b34b6 Error when parsing numbers outside of f64's range 2017-05-31 00:30:55 +01:00
Alan Du 90bdb7e96d Encode control characters with hex not decimal
Fix https://github.com/alexcrichton/toml-rs/issues/178
2017-05-30 23:55:09 +01:00
Alan Du d375f4d63a Store fraction of seconds in times unconditionally
This way, times without fractional seconds  will be compare equal to
times with 0 fractional seconds if all else is equal. For example,
    06:00:00 == 06:00:00.0

Closes https://github.com/alexcrichton/toml-rs/issues/179
2017-05-30 23:50:58 +01:00
Alex Crichton 38c17e6dca Merge pull request #172 from rap2hpoutre/patch-1
add example for from_str
2017-05-10 13:19:47 -05:00
Raphaël Huchet d5ffc6cc60 add example for to_string 2017-05-10 17:39:19 +02:00
Raphaël Huchet 9158482ed9 Update de.rs 2017-05-10 17:17:58 +02:00