Commit graph

616 commits

Author SHA1 Message Date
Alex Crichton e256931e9b Rewrite crate with serde support from ground up
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
2017-02-08 21:21:18 -08:00
Alex Crichton 4c358121bb Merge pull request #134 from SamWhited/patch-1
Add a latest version shield to the readme
2017-01-28 18:02:34 -08:00
Sam Whited 67855a21c5 Add a latest version shield to the readme 2017-01-27 19:04:31 -06:00
Alex Crichton 0dc5347946 Clarify that serde is supported
Closes #122
2017-01-09 17:37:05 -08:00
Alex Crichton 5907e0a7d0 Return encoding errors for NaN and infinite
TOML can't actually represent them, so we should bail out.

Closes #125
2016-12-30 17:40:40 -08:00
Alex Crichton f66b9913f9 Escape control characters when encoding strings
Closes #126
2016-12-30 17:34:11 -08:00
Alex Crichton 414a61cb84 Update travis token 2016-11-19 09:16:51 -08:00
Alex Crichton 659bbfa570 Touch up the decode example 2016-10-02 23:26:51 -07:00
Alex Crichton 552e785a2a Merge pull request #114 from kper/master
Add example for decoding toml to struct
2016-10-02 23:23:24 -07:00
kper b9d565e034 Add example for decoding toml to struct 2016-10-02 12:32:41 +01:00
Alex Crichton 530f112da8 Bump to 0.2.1 2016-09-08 14:48:30 -07:00
Alex Crichton 89ed04d201 Merge pull request #111 from nabijaczleweli/master
Don't space out the first table or array if not needed
2016-09-07 10:24:35 -07:00
nabijaczleweli 1e575d420c Add tests for checking for extraneous leading newlines (or lack thereof)
Couldn't find a better place to put this (the "valid" and "invalid"
tests are just for parser) so I made a new test module
2016-09-06 21:16:21 +02:00
nabijaczleweli 594b845b5a Don't space out the first table or array if not needed
Closes #110
2016-09-06 09:01:06 +02:00
Alex Crichton ccf3977221 Merge pull request #108 from vks/patch-2
Fix a typo
2016-08-16 14:49:31 -07:00
Vinzent Steinberg 2299cb3744 Fix a typo 2016-08-16 23:41:53 +02:00
Alex Crichton 0018fbe992 Merge pull request #107 from vks/patch-1
Update toml-rs version in README
2016-08-16 14:10:59 -07:00
Vinzent Steinberg 5489404551 Update toml-rs version in README 2016-08-16 22:39:14 +02:00
Alex Crichton b39768abf5 Remove Cargo.lock in serde-tests 2016-08-01 09:41:58 -07:00
Alex Crichton 1ed8fd555e Update serde-tests Cargo.lock 2016-08-01 09:41:18 -07:00
Alex Crichton 70d15bdcf3 Bump to 0.2.0 2016-08-01 09:30:16 -07:00
Alex Crichton 4ee9cb72e6 Touch up the encoder/decoder a bit
* Whitespace things
* Don't make `State` public
* Remove `#[cfg]` annotations
2016-07-29 10:23:06 -07:00
Alex Crichton b480a26f8d Merge pull request #105 from dtolnay/up
Update to serde 0.8.0
2016-07-29 09:22:22 -07:00
David Tolnay c17b75f834 Restore defaulted Deserializer methods 2016-07-29 00:55:52 -07:00
David Tolnay ae3028d4ee Bump serde dependency in serde-tests 2016-07-29 00:23:12 -07:00
David Tolnay 242b8038a1 Cfg off functions only needed for rustc-serialize or serde 2016-07-28 11:09:50 -07:00
David Tolnay 492690669e Update to serde 0.8.0 2016-07-28 11:09:40 -07:00
Oliver Schneider c7d96b191e next iteration 2016-07-15 16:24:26 +02:00
Oliver Schneider 183646b118 adjust for seq/map ser revamp 2016-07-14 15:28:51 +02:00
Alex Crichton fb8050d2d5 Merge pull request #101 from leodasvacas/clippy-run
Clippy run and implement Default for State and Enconder
2016-06-05 07:46:17 +02:00
leonardo.yvens e8097b14f1 Clippy run 2016-06-03 23:19:15 -03:00
Alex Crichton 7363dbe7f5 Merge pull request #103 from MarkSwanson/lookup-lifetime-enhancement
lookup() and lookup_mut() lifetime enhancements.
2016-06-01 12:36:30 -07:00
Alex Crichton 6f43fc3b29 Fix serde tests on nightly 2016-05-31 10:41:47 -07:00
Mark Swanson 3639e62a3b Rely on lifetime elision. 2016-05-31 10:20:43 -04:00
Mark Swanson 010e34f637 lookup() and lookup_mut() lifetime enhancements.
Rationale:

- The path has nothing to do with the result.
- The path has no need to live as long as the Value/self.
- In some cases it can be hard to actually build a path that meets
  the same lifetime requirements as the Value or String slice result.
2016-05-30 16:09:40 -04:00
Alex Crichton 44fc9d9f37 Require newlines to be present after keys
Closes #100
2016-05-22 23:30:43 -07:00
Alex Crichton 97592e120f Merge pull request #98 from zofrex/accept-empty-table
Accept empty table
2016-05-18 20:52:28 -07:00
James Sanderson dd7e31ea53 Refactor checking for EOF into method 2016-05-19 01:12:58 +01:00
James Sanderson 112adaaa3f Accept empty table on last line 2016-05-19 01:09:33 +01:00
James Sanderson 6450da87ba Failing test for empty table on last line 2016-05-19 00:54:54 +01:00
Alex Crichton 00a3452fa9 Update serde-tests Cargo.lock 2016-05-16 10:27:42 -07:00
Alex Crichton 924f81c5fb Bump to 0.1.30 2016-05-16 10:18:07 -07:00
Alex Crichton b9280519cc Fix accepting comments after table definitions 2016-05-16 10:17:51 -07:00
Alex Crichton c777001598 Accept fractional seconds and timezones in datetime parsing
Closes #96
2016-05-12 14:07:34 -07:00
Alex Crichton a8223490c2 Update serde-test toml version 2016-05-12 13:39:42 -07:00
Alex Crichton 6b0761fcce Bump to 0.1.29 2016-05-12 11:28:56 -07:00
Alex Crichton 1ed6801137 Add option to enable old behavior
Cargo will use this in the interim.
2016-05-12 11:28:32 -07:00
Alex Crichton 50dfc8ac79 Merge pull request #94 from zofrex/require-newline-after-table
Require newline after table
2016-05-12 11:26:18 -07:00
James Sanderson 848227c605 Require a newline after table definition 2016-04-17 22:51:43 +01:00
James Sanderson 2cd1116e06 Add failing test cases containing invalid Toml with keys on the same line as table definition 2016-04-17 22:51:28 +01:00