Commit Graph

911 Commits

Author SHA1 Message Date
Erick Tryzelaar
bf58f7999f Get deserializing json objects into structs working 2014-05-27 07:36:57 -07:00
Erick Tryzelaar
38a468ad23 Simplify pattern expecting a token 2014-05-27 07:21:37 -07:00
Erick Tryzelaar
ebab6637d6 add json::from_iter, and start checking errors 2014-05-26 17:02:51 -07:00
Erick Tryzelaar
e58096dcc2 Get all the json types to parse 2014-05-26 14:27:08 -07:00
Erick Tryzelaar
0d56ae5986 Add TreeMap impl of Deserializable 2014-05-26 12:53:37 -07:00
Erick Tryzelaar
0bda36d6d3 get json list deserialization working 2014-05-26 11:08:15 -07:00
Erick Tryzelaar
17e93d3d5d Re-enable json and port to rust HEAD 2014-05-26 10:40:47 -07:00
Erick Tryzelaar
d87589f5cb Minor cleanup 2014-05-26 09:49:05 -07:00
Erick Tryzelaar
7c60fa5276 Error properly if we get an unknown variant 2014-05-26 09:48:10 -07:00
Erick Tryzelaar
81dfaa4f3d cleanup benchmarks, re-enable enum, remove bench_token_deserializer
test bench_enum::bench_decoder_dog         ... bench:       111 ns/iter (+/- 9)
test bench_enum::bench_decoder_frog        ... bench:       343 ns/iter (+/- 95)
test bench_enum::bench_deserializer_dog    ... bench:       124 ns/iter (+/- 41)
test bench_enum::bench_deserializer_frog   ... bench:       315 ns/iter (+/- 17)
test bench_map::bench_decoder_000          ... bench:       580 ns/iter (+/- 138)
test bench_map::bench_decoder_003          ... bench:      2469 ns/iter (+/- 956)
test bench_map::bench_decoder_100          ... bench:     68491 ns/iter (+/- 11653)
test bench_map::bench_deserializer_000     ... bench:       819 ns/iter (+/- 234)
test bench_map::bench_deserializer_003     ... bench:      2589 ns/iter (+/- 594)
test bench_map::bench_deserializer_100     ... bench:     61954 ns/iter (+/- 23604)
test bench_struct::bench_decoder_0_0       ... bench:       602 ns/iter (+/- 153)
test bench_struct::bench_decoder_1_0       ... bench:      1664 ns/iter (+/- 500)
test bench_struct::bench_decoder_1_5       ... bench:      4715 ns/iter (+/- 1499)
test bench_struct::bench_deserializer_0_0  ... bench:       700 ns/iter (+/- 189)
test bench_struct::bench_deserializer_1_0  ... bench:      2318 ns/iter (+/- 595)
test bench_struct::bench_deserializer_1_5  ... bench:      5131 ns/iter (+/- 1650)
test bench_vec::bench_decoder_int_000      ... bench:        22 ns/iter (+/- 22)
test bench_vec::bench_decoder_int_003      ... bench:       154 ns/iter (+/- 40)
test bench_vec::bench_decoder_int_100      ... bench:      1038 ns/iter (+/- 203)
test bench_vec::bench_decoder_u8_000       ... bench:        16 ns/iter (+/- 4)
test bench_vec::bench_decoder_u8_003       ... bench:       158 ns/iter (+/- 43)
test bench_vec::bench_decoder_u8_100       ... bench:      1499 ns/iter (+/- 672)
test bench_vec::bench_deserializer_int_000 ... bench:        16 ns/iter (+/- 4)
test bench_vec::bench_deserializer_int_003 ... bench:       156 ns/iter (+/- 43)
test bench_vec::bench_deserializer_int_100 ... bench:      1027 ns/iter (+/- 244)
test bench_vec::bench_deserializer_u8_000  ... bench:        16 ns/iter (+/- 10)
test bench_vec::bench_deserializer_u8_003  ... bench:       166 ns/iter (+/- 43)
test bench_vec::bench_deserializer_u8_100  ... bench:      1226 ns/iter (+/- 234)
test de::tests::bench_token_deserializer   ... bench:       367 ns/iter (+/- 107)
2014-05-26 09:43:51 -07:00
Erick Tryzelaar
88ed9cb4f2 Get rid of unused macros 2014-05-26 09:35:04 -07:00
Erick Tryzelaar
897f64283f re-enable the vec benchmarks 2014-05-26 09:31:17 -07:00
Erick Tryzelaar
386b53cce7 Add a bench_map.
test bench_map::bench_decoder_map_000      ... bench:       510 ns/iter (+/- 124)
test bench_map::bench_decoder_map_003      ... bench:      2347 ns/iter (+/- 253)
test bench_map::bench_decoder_map_100      ... bench:     68735 ns/iter (+/- 14869)
test bench_map::bench_deserializer_map_000 ... bench:       736 ns/iter (+/- 35)
test bench_map::bench_deserializer_map_003 ... bench:      2446 ns/iter (+/- 348)
test bench_map::bench_deserializer_map_100 ... bench:     64326 ns/iter (+/- 15191)
2014-05-26 09:23:05 -07:00
Erick Tryzelaar
ac3136b2f3 Map elts shouldn't be tuples, 4267ns vs 4900ns 2014-05-26 09:01:22 -07:00
Erick Tryzelaar
e4fece35ad Make the bench_struct map test more complicated, 4373ns vs 5355ns 2014-05-26 09:00:54 -07:00
Erick Tryzelaar
8587bb3a4c Replace StructField with Str/String. 2322ns vs 2982ns 2014-05-26 08:26:34 -07:00
Erick Tryzelaar
4b8c62828e Simplify the struct deserializer state machine
2515ns vs 3058ns
2014-05-26 07:46:17 -07:00
Erick Tryzelaar
ada088eb85 update to rust HEAD (20a415)
struct decoder: 2417ns
struct deserializer: 1640ns
2014-05-26 07:18:18 -07:00
Erick Tryzelaar
41eb7293d2 flesh out struct benchmarks 2014-05-25 22:20:06 -07:00
Erick Tryzelaar
62fb2073e2 reenable struct benchmarks 2014-05-25 22:16:34 -07:00
Erick Tryzelaar
cd3cd7b01c Update deserializing hashmaps 2014-05-25 22:08:37 -07:00
Erick Tryzelaar
a0788f5c92 Reenable the tests 2014-05-25 21:59:58 -07:00
Erick Tryzelaar
7206db4b0b Minor cleanup 2014-05-25 21:51:12 -07:00
Erick Tryzelaar
f274dcbd44 Rewrite to work around rust/issues/11751. 162ns vs 156ns 2014-05-25 21:36:56 -07:00
Erick Tryzelaar
7030b5d790 Inline expect_rest_of_collection 2014-05-25 19:41:29 -07:00
Erick Tryzelaar
0a77e0de55 Sep is unused 2014-05-25 13:35:32 -07:00
Erick Tryzelaar
2ee0c619bd Add Vec<u8> benchmarks 2014-05-24 23:33:18 -07:00
Erick Tryzelaar
b90aae619c minor cleanup 2014-05-24 15:04:45 -07:00
Erick Tryzelaar
79d3676d1c Extend bench_vec tests 2014-05-24 15:02:24 -07:00
Erick Tryzelaar
ec32fc9a78 Optimize away one state in enums 2014-05-24 14:11:25 -07:00
Erick Tryzelaar
cb1b006b0f Migrate enum bench to lookahead 2014-05-24 14:08:35 -07:00
Erick Tryzelaar
7180d94196 switch back to lookahead, 175ns vs 184ns 2014-05-23 22:30:53 -07:00
Erick Tryzelaar
2d1c7b43d7 checkpoint vec without Sep, 184ns vs 182ns 2014-05-23 20:58:09 -07:00
Erick Tryzelaar
79f35c4d48 Move the benchmarks out of de.rs 2014-05-23 20:41:29 -07:00
Erick Tryzelaar
a09694ea5f play around with state function handlers 2014-05-23 08:40:46 -07:00
Erick Tryzelaar
d90f758f66 experiment with removing state machine from OuterDeserializer
588ns vs 552ns
2014-05-22 07:56:37 -07:00
Erick Tryzelaar
7808dfc2d4 Rename bench_dummy_deserializer to bench_token_sdeerializer 2014-05-21 22:08:59 -07:00
Erick Tryzelaar
57091bf441 Add struct bench
ints: 169ns vs 191ns
enum: 376ns vs 347ns
struct: 2432ns vs 3465ns
2014-05-21 22:08:08 -07:00
Erick Tryzelaar
ad2d7a5deb Add a StructDecoder 2014-05-21 21:48:49 -07:00
Erick Tryzelaar
6e917c0800 Make sure to inline things in the Decoders
169ns vs 190ns, 346ns vs 329ns
2014-05-21 21:48:34 -07:00
Erick Tryzelaar
173d367d30 Swap AnimalDeserializer with a state machine to be fairer
165ns vs 193ns, 374ns vs 342ns
2014-05-21 21:09:50 -07:00
Erick Tryzelaar
d8f0aba128 add benchmarks for 157ns vs 197ns, 362ns vs 333ns 2014-05-21 20:54:10 -07:00
Erick Tryzelaar
511cc7e198 Add support for enums 2014-05-21 08:44:48 -07:00
Erick Tryzelaar
58423b321f Add support for structs, 155ns vs 206ns 2014-05-21 08:25:28 -07:00
Erick Tryzelaar
c7b6f45d7a explicit expect_{seq,map} should error on another collection type
150ns vs 195ns
2014-05-21 06:47:58 -07:00
Erick Tryzelaar
23630be5dd Collections should work with multiple types 2014-05-20 19:38:48 -07:00
Erick Tryzelaar
2f266aa67b Split out multiple collection types: 153ns vs 194ns
This allows a consumer of a deserializer stream to know what
type it might be dealing with.
2014-05-20 19:22:23 -07:00
Erick Tryzelaar
54d41da743 cleanup, and revert back to the separator, 162ns vs 205ns 2014-05-19 19:41:38 -07:00
Erick Tryzelaar
db257057e2 support both LL(0) and LL(1) grammars 2014-05-19 18:44:20 -07:00
Erick Tryzelaar
a41c64f735 macrotize tuple impls 2014-05-19 17:53:24 -07:00