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
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
nabijaczleweli
594b845b5a
Don't space out the first table or array if not needed
...
Closes #110
2016-09-06 09:01:06 +02:00
Vinzent Steinberg
2299cb3744
Fix a typo
2016-08-16 23:41:53 +02: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
David Tolnay
c17b75f834
Restore defaulted Deserializer methods
2016-07-29 00:55:52 -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
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
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
1ed6801137
Add option to enable old behavior
...
Cargo will use this in the interim.
2016-05-12 11:28:32 -07:00
James Sanderson
848227c605
Require a newline after table definition
2016-04-17 22:51:43 +01:00
Tae-il Lim
6426b02d3d
Use different method to ensure unicode escape code is ASCII of expected length
2016-04-05 11:13:36 +09:00
Bourgond Aries
644dc88c04
Add a bunch of negative and positive tests
2016-03-28 06:35:39 +02:00
Bourgond Aries
33c49d0357
Leverage fn array_index to fn integer
2016-03-28 06:24:25 +02:00
Bourgond Aries
568dd2ef4b
Fix the indentation to be consistent with the repository
2016-03-27 21:19:03 +02:00
Bourgond Aries
442f663c2d
Add advanced lookup for table names
2016-03-27 20:55:49 +02:00
Bourgond Aries
770052a9a7
Add a test for lookup_mut_advanced
2016-03-27 20:50:25 +02:00
Bourgond Aries
0e3e0654ba
Implement advanced key lookup for lookup_mut
2016-03-27 20:48:23 +02:00
Bourgond Aries
3517215eab
Implement a more advanced algorithm for lookup
...
The new algorithm allows the explicit usage of "" and '' to denote key
names. This is useful for accessing tables or keys that are named in a
non-conventional manner.
2016-03-27 20:46:19 +02:00
Bourgond Aries
b171205c57
Add a test to see if the table's contents have changed
2016-03-25 17:43:32 +01:00
Bourgond Aries
32969ca891
Implement the non-recursive lookup_mut
...
Also include some tests simply by copying and modifying
the other tests for lookup.
2016-03-25 17:33:46 +01:00
Bourgond Aries
9b1dc843fc
Add lookup_mut method for mutable access
...
Mutable access may sometimes be desired in order to change values
in the toml table. This can be used for dynamic configurations which
will be easy to modify and store.
lookup_mut requires a recursive method due to the borrow checker
not allowing to have more than one mutable reference in the same
scope.
2016-03-24 14:18:00 +01:00
Alex Crichton
511c235d7d
Fix last tests
2016-03-11 09:20:32 -08:00
Alex Crichton
3345fea319
Fix an error message test, simlify some serde code
2016-03-11 01:32:16 -08:00
Alex Crichton
d02e622330
WIP
2016-03-07 23:48:01 -08:00
Alex Crichton
6b0a1362a1
Support literal strings in table names
...
Closes #85
2016-01-24 10:50:39 -08:00
Corey Farwell
7be39d725d
Address issues found by rust-clippy
2016-01-21 08:38:09 -05:00
Jake Goulding
67107034fc
Minor documentation grammar fix
2016-01-01 17:57:01 -05:00
Alex Crichton
39d77b6d79
When decoding maps, leave fields that weren't processed
...
Fixes an XXX
2015-12-18 16:29:07 -08:00
Cameron Silvestrini
caa4615536
Fixed bug: floats always end up in Decoder.toml, even when they have
...
been successfully decoded.
2015-12-15 22:43:24 +11:00
osboxes.org
dea8646b8b
Allow BOM (Byte order mark) in toml
2015-10-07 11:35:49 +02:00
Guillaume Gomez
db75e532e5
Add Clone derive on ParserError
2015-09-30 00:00:17 +02:00
Kerhong
547e202c15
Implement Value::lookup for empty path to return self
2015-09-25 19:26:47 +03:00
mseri
dc0aa5f6c4
Fixed typo
2015-08-29 12:47:21 +01:00
Alex Gulyás
64ae43a386
Fix the arithmetic overflow in Parser::to_linecol
...
This also changes the calculated line and column numbers. Without this
patch, if an error occurs at the end of a line, the returned line and
column numbers will point at the start of the next line.
After this patch, the line and column numbers will correctly point at
the end of the line where the actual parse error happened.
2015-08-14 14:54:32 +02:00
Alex Crichton
7ec4821bd7
Touch up some style in the decoder
2015-08-13 09:47:40 -07:00
Erick Tryzelaar
85cd6f3e6e
Rewrite the MapVisitor to add errors for a specific field
2015-08-13 08:25:56 -07:00
Erick Tryzelaar
8c33064c2c
Override the numeric hints to not deserialize ints into floats, and vice versa
2015-08-13 08:25:56 -07:00
Erick Tryzelaar
e5efc8801d
Add a Deserialize::visit_enum that tries to deserialize into each variant
...
This could be more efficiently done if serde communicated the
number of arguments in each variant in this function.
2015-08-13 08:25:56 -07:00
Erick Tryzelaar
b7b31bf9da
Implement Serialize::visit_newtype_{struct,variant}
...
These functions allow a serializer to not wrap a newtyped value
inside of a tuple or struct.
2015-08-13 07:42:06 -07:00
Erick Tryzelaar
bbc167cde9
Get serde feature compiling again
2015-08-12 23:01:49 -07:00
Erick Tryzelaar
4e0172a9a5
Merge remote-tracking branch 'remotes/origin/master' into serde
2015-08-12 22:15:58 -07:00
Alex Crichton
b70f6e53b2
Don't need to qualify String
2015-08-11 09:18:52 -07:00
Ben Navetta
8a2282fecd
it helps to actually build with serde enabled
2015-08-06 23:33:39 -04:00
Ben Navetta
00337d088e
implement serde::Deserialize for Value
2015-08-06 23:30:08 -04:00
Alex Crichton
89332806c5
Improve the error message in failing enums
2015-06-23 17:45:48 -07:00
Alex Crichton
27a70d4024
Name the fields of the custom table AST
2015-06-08 00:04:30 -07:00
Alex Crichton
00baf76107
Add a few more tests for redefining tables
2015-06-07 23:58:45 -07:00
Alex Crichton
88461157f2
Clean up more style
2015-06-07 23:57:50 -07:00
Alex Crichton
68924534e2
Use deref coercions
2015-06-07 23:48:32 -07:00
Alex Crichton
6580b77a20
Re-structure control flow a bit + modernization
2015-06-07 23:47:22 -07:00
Andrzej Janik
8487b63c97
Rework fix for table redefinition to avoid breaking AST-compatiblity
2015-06-06 18:11:48 +02:00
Andrzej Janik
2fcd829b1d
Disallow table redefinitions
2015-06-04 20:23:46 +02:00
Alex Crichton
94023b1d89
Fix serde-only compilation
2015-04-21 12:00:05 -07:00
Alex Crichton
3301c39630
Tweak some style
2015-04-21 09:16:06 -07:00
Oliver Schneider
6e2f2c39e4
most tests work now
2015-04-20 15:11:34 +02:00
Oliver Schneider
ac86f4c941
updated to master
2015-04-20 12:29:58 +02:00
Alex Crichton
41563ee01b
wip
2015-04-02 17:12:37 -07:00
Alex Crichton
2d49247b92
Modularize rustc-serialize support
...
* Add rustc-serialize as a default feature
* Make room for for serde support
2015-04-02 17:07:37 -07:00
Alex Crichton
cd33b87bf9
Bump to 0.1.20
2015-04-01 09:56:05 -07:00
Alex Crichton
c8a5ca4ece
Bump to 0.1.19
2015-03-25 10:11:05 -07:00
Alex Crichton
2c5aa07722
Implement Encodable for Value
...
We can't generically decode into one, but we can generically encode one!
Closes #58
2015-03-20 10:53:36 -07:00
Alex Crichton
b852af0a60
Improve test coverage
2015-03-15 11:26:32 -07:00
Alex Crichton
ff3bb7d255
Reduce usage of unstable features
2015-03-09 11:09:07 -07:00
Alex Crichton
e14c2052b7
Don't upload extra docs on travis
2015-03-03 20:35:04 -08:00
Steven Fackler
93e5ace69c
Add a doc root url
2015-03-03 20:27:09 -05:00
Alex Crichton
1bebfa1394
Move away from deprecated syntax
2015-02-23 14:45:02 -08:00
Alex Crichton
26da27e628
Add support for numbers with underscores
2015-02-11 11:15:48 -08:00
Alex Crichton
95085dba9a
Implement parsing of inline tables
2015-02-07 22:02:32 -08:00
Alex Crichton
0042025904
Bump to 0.1.16
2015-02-03 08:37:05 -08:00
Alex Crichton
b3e9653b7f
Properly escape keys when printing TOML
...
Closes #53
2015-02-02 22:54:46 -08:00
Alex Crichton
68e6c34b90
Move show.rs to display.rs
2015-02-02 22:30:06 -08:00
Alex Crichton
c6b2aea11e
Fix a deprecation warning
2015-02-02 22:29:51 -08:00
Alex Crichton
0a6a1cabde
Add some feature gates
2015-01-29 08:42:02 -08:00
Alex Crichton
482752b5f4
Migrate to as many stable functions as possible
2015-01-27 19:29:58 -08:00
Alex Crichton
909a85069b
Bump to 0.1.15
2015-01-23 08:19:29 -08:00
Alex Crichton
31d99cd425
Remove slash as an escapeable character
2015-01-20 10:00:43 -08:00
Alex Crichton
885db13d09
Don't infinite loop on bad keys
2015-01-19 13:16:42 -08:00
Alex Crichton
3536cb50e6
Update key syntax to TOML master
...
* Bare keys contain a very limited set of characters now.
* Keys in quotes behave the same as basic strings.
Closes #47
2015-01-15 19:47:56 -08:00
Alex Crichton
46a70861d5
Add some tests from the spec
2015-01-15 17:37:13 -08:00
Alex Crichton
0285af245a
Implement new rules for bare key names
...
* Key names are restricted to [a-zA-Z0-9_-]
* Equal signs must be on the same line (as must the next value) as the key
* Quoted keys are allowed and are parsed as basic strings.
Closes #48
2015-01-15 17:34:27 -08:00
Alex Crichton
bc825a5fb5
Expand float parsing to include exponents
...
Closes #50
2015-01-15 16:01:27 -08:00
Alex Crichton
f098d70145
Disallow leading 0s in integers/floats
2015-01-15 15:37:48 -08:00
Alex Crichton
f4b2045de0
Audit string parsing, fixing a few bugs here and there
...
Closes #51
2015-01-15 15:23:37 -08:00
Alex Crichton
5f2c7b4986
Tighten up CRLF parsing
...
Fix lots of false positives with stray \r characters and also fix CRFL parsing
in raw string literals with escapes.
Closes #49
2015-01-15 15:10:42 -08:00