David Tolnay
3d4346808f
More efficient serialize_bytes ( #90 )
...
* Update to serde_derive
* Fix missing Encoder and Decoder imports
* Add test for serializing bytes
* More efficient serialize_bytes
Reported in #serde: blank_name2 tried serializing
`HashMap<String, HashSet<Bytes>>` vs `HashMap<String, HashSet<&Path>>`,
the `&Path` version was done in ~.6 seconds while the
`&[u8]` one took a full 3 seconds more.
2016-12-12 18:26:26 +00:00
Nikita Baksalyar
8d708cd194
Delegate emit_enum_struct_variant calls to emit_enum_variant ( #89 )
...
* Delegate emit_enum_struct_variant calls to emit_enum_variant
read_enum_struct_variant delegates calls to read_enum_variant which
expects u32 prefix to encode a variant number. Previous implementation
of emit_enum_struct_variant doesn't emit it, making serialized data
invalid.
* Add test to check manual enum encoding
2016-11-27 13:08:20 -08:00
Brian Bowman
e96a3645fa
Fix typo in bincode::serde ( #88 )
2016-09-20 16:03:54 -07:00
David Tolnay
95b414a184
Update to serde 0.8.0 ( #84 )
2016-07-28 12:23:18 -07:00
Cobrand
c5073e83e5
pub used InvalidEncoding in serde+rustc_serialize so it shows in `cargo doc` ( #82 )
...
* Removed unused import warning
* pub use InvalidEncoding in serde+rustc_serialize
* Made both fields of InvalidEncoding public so it can be used without Display or Debug traits (e.g. pattern matching)
* Export of InvalidEncoding in rustc_serialize/serde make them visible in `cargo doc`
2016-07-08 06:53:43 -07:00
Oliver Schneider
2eee182f1f
fix char serialization and deserialization
2016-06-30 14:02:07 +02:00
Dmitry
e5a524ed28
Fixed size array deserialization ( #76 )
...
* Attempt to implement hint for fixed size arrays.
* Removed wrong visitor + tests.
* Removed extra new line.
2016-06-19 13:29:10 -07:00
David Tolnay
629d7bc640
Impl Deserialize for non-'static lifetimes ( #79 )
2016-06-19 13:23:21 -07:00
Ms2ger
c7bdb4a90c
Use num-traits. ( #72 )
2016-04-21 09:28:33 -07:00
Alexander Bulaev
ff69e6f3e1
Add cargo features for rustc-serialize and serde ( #70 )
...
* Add cargo features for rustc-serialize and serde
If you only really need one of them
* Check that both "serde" and "rustc-serialize" are compiling
* Minor: change Travis build order
2016-04-15 11:03:32 -07:00
Ty Overby
21329a0e53
v0.5.3
2016-04-12 09:28:21 -07:00
Jayson Reis
183c28e363
Upgrade byteorder to 0.5.x ( #68 )
2016-04-12 09:26:18 -07:00
Brian Bowman
127380a506
fix typo
2016-04-07 03:05:41 -05:00
Ty Overby
772b1da6df
Revert "Respect size limits in read_seq and read_map."
...
This reverts commit 1e21e5d13b .
2016-04-03 15:44:21 -07:00
Andrew Cann
ce61edb51f
Replace use of saturating_add
2016-03-10 17:27:51 +08:00
Andrew Cann
1e21e5d13b
Respect size limits in read_seq and read_map.
2016-03-10 17:08:11 +08:00
Ty Overby
bde9aa6565
add initial support for serde 0.7
2016-03-04 10:44:28 -08:00
Ty Overby
3e8833b70e
Fix typo
2016-02-07 17:42:45 -08:00
Ty Overby
9824d8061c
ignore instead of no_run
2016-02-07 17:03:47 -08:00
Ty Overby
7fba81da1e
should parse now
2016-02-07 17:00:24 -08:00
Ty Overby
13d9e30813
no run on tests
2016-02-07 16:56:51 -08:00
Ty Overby
05850df34a
Merge branch 'master' of github.com:TyOverby/bincode
2016-02-07 16:46:33 -08:00
Ty Overby
25cfb15823
add more docs
2016-02-07 16:46:23 -08:00
Ty Overby
7662a57727
add more useful syntax error messages
2016-01-19 08:46:33 -08:00
Ty Overby
a63e80d75d
add docs for the new modules
2015-08-07 23:16:35 -07:00
Ty Overby
0cfb64511c
moved the two designs into modules
2015-08-07 17:35:27 -07:00
Ty Overby
9c6bf1aa41
remove unused code
2015-08-07 16:39:15 -07:00
Ty Overby
3de218537f
Fix test fallout during merge
2015-08-07 16:16:42 -07:00
Erick Tryzelaar
b59af483ef
Updated to serde 0.5.0
2015-08-07 12:10:02 -07:00
Erick Tryzelaar
f04635c1ba
Add newtype handlers to speed up parsing newtype structs and variants
2015-07-30 20:45:36 -07:00
Erick Tryzelaar
8ec54e562a
Update to serde 0.5.0
2015-07-29 13:15:14 -07:00
Erick Tryzelaar
0d6b8a48b6
Get serde working
2015-07-29 13:15:04 -07:00
Erick Tryzelaar
b206032ff1
Initial support for serde serialization
2015-07-01 15:21:26 -07:00
Erick Tryzelaar
f11ba0c41f
Move tests into the tests/ directory
2015-06-30 07:52:18 -07:00
Ty Overby
fd52ae0d64
Revert "Merge pull request #42 from jmesmon/fix-oom"
...
This reverts commit 1c3f457cf9 , reversing
changes made to 84b5c416ca .
2015-05-29 13:50:16 -07:00
Ty Overby
e8d783fdfc
Revert "fail with size limit on large maps too"
...
This reverts commit ce286b2519 .
2015-05-29 13:39:17 -07:00
Ty Overby
ce286b2519
fail with size limit on large maps too
2015-05-28 16:12:46 -07:00
Ty Overby
1c3f457cf9
Merge pull request #42 from jmesmon/fix-oom
...
check the size of seqs before trying to decode them
2015-05-28 16:09:20 -07:00
Cody P Schafer
ee0dccbd02
check the size of seqs before trying to decode them
...
Fixes #41
2015-05-28 16:03:02 -04:00
Cody P Schafer
9ab3320db7
SliceBox: allow Deref into &[T]
...
Allows more convenient use of SliceBox where one doesn't care whether
it represents a Vec<T> or &[T] and can handle using a &[T].
2015-05-28 12:05:30 -04:00
Ty Overby
e3837055d7
Removes the "bytes read" return part from `decode`
...
This reverts commit 5fa0c2bd8a .
Conflicts:
Cargo.toml
2015-05-18 23:28:39 -07:00
Jonathan Reem
a19d62cbe9
Add some more trait impls and methods to StrBox and SliceBox
2015-05-04 03:48:25 -07:00
Ty Overby
b6615fa262
derive debug for refbox and friends
2015-05-02 12:56:36 -07:00
Ty Overby
1d45873f1e
cleaned up refbox implementation and added tests
2015-05-02 12:23:27 -07:00
Ty Overby
3d8f97923d
strbox and slicebox
2015-05-02 03:52:27 -07:00
Ty Overby
5fa0c2bd8a
Decoders return the number of bytes that they read
...
Closes #35
2015-05-01 09:17:18 -07:00
Ty Overby
d87e7dad2d
rustfmt
2015-04-29 23:26:58 -07:00
TyOverby
209b274062
remove dependency on the unicode library
2015-04-29 18:09:01 -07:00
Mohd Tarmizi
4e0f2457ac
Fix rustdoc comment syntax
...
I also moved the comment block to the top of the file so that rustdoc won't throw "expected outer comment" error
2015-04-27 21:36:59 +08:00
Ty Overby
31572a2da5
remove use of the unicode library
2015-04-12 21:12:24 -07:00
Ty Overby
cb3c84acd6
Merge branch 'master' of github.com:TyOverby/bincode
2015-04-12 21:04:29 -07:00
Ty Overby
92d6b95c2c
remove reimplementation of read_exactly
2015-04-12 21:04:15 -07:00
TyOverby
be66f5fed4
change wording of some docs
2015-04-07 13:35:11 -07:00
Cody P Schafer
6240bcfc31
refbox: add Debug impl
2015-04-03 15:42:18 -04:00
Ty Overby
e5d0c33acd
update for rustc
2015-04-02 12:24:05 -07:00
Mike Dilger
a92429505a
Update full slice syntax
2015-04-01 08:54:58 +13:00
Mike Dilger
883b1097ab
Fix for upstream rustc changes
2015-04-01 08:41:50 +13:00
Mike Dilger
fcc64883b6
Derive Clone,PartialEq for EncodingError
2015-03-26 15:55:03 +13:00
Ty Overby
1bbd5377e3
rustup
2015-03-25 15:50:41 -07:00
Ty Overby
575002877b
removed warnings
2015-03-23 10:36:29 -07:00
Ty Overby
1355a93a23
Fix rustc updates.
2015-03-19 10:09:27 -07:00
Ty Overby
bf4d6f637b
clean up wording of docs
2015-03-08 15:42:35 -07:00
Cody P Schafer
b9f201c792
Don't require BufRead, only Read
...
While BufRead is preferable to avoid dog-slow performance, requiring
when no methods are called is also problematic, especially for wrappers
around Read that shouldn't necessarily need to know they're wrapping
BufRead.
2015-03-02 17:23:10 -05:00
Ty Overby
5f85e9b19a
Use new io, update for rustc changes
2015-02-21 21:42:59 -08:00
Ty Overby
28b5007731
mark new version
2015-02-21 21:05:30 -08:00
Ty Overby
29fde1b72f
ignore doctests in refbox
2015-02-20 08:57:01 -08:00
Ty Overby
6c6d92ef45
feature new_io
2015-02-20 08:48:48 -08:00
Ty Overby
f216e2575a
add documentation to refbox
2015-02-18 15:08:03 -08:00
Ty Overby
f5111f9476
Add RefBox.
...
RefBox is a structure for encoding references, and decoding them into
a box. This makes it easy to nest structures that otherwise would not
be able to be nested and encoded.
2015-02-17 13:18:25 -08:00
Ty Overby
873815ab0a
prepare for newio
2015-02-16 11:33:21 -08:00
Ty Overby
b15b85797e
added doc icon
2015-02-15 12:56:42 -08:00
Ty Overby
03966150c6
emit str using write_all
2015-02-09 18:19:23 -08:00
Ty Overby
15e7672703
prepare for the new io library
2015-02-09 14:56:40 -08:00
Ty Overby
2f3860ddab
clean up tests
2015-02-07 18:25:28 -08:00
Ty Overby
58c3c65eea
fix size estimation, add tests
2015-02-07 18:10:12 -08:00
Ty Overby
64a8877c55
add another test and change Show -> Debug
2015-02-05 01:18:44 -08:00
TyOverby
5952c3adb0
update for stdlib
2015-01-28 13:01:11 -08:00
Colin Sherratt
6a9011d2e3
Update to using Debug over Show.
...
Update the Error impls.
2015-01-24 19:27:19 -05:00
TyOverby
0e044483ee
Fix doc tests.
2015-01-16 13:25:55 -08:00
TyOverby
aeaa4aafd4
Merge branch 'master' of github.com:TyOverby/bincode
2015-01-16 13:21:46 -08:00
TyOverby
89a6b007b1
add encoded_size function
2015-01-16 13:21:35 -08:00
Francesco Mazzoli
eb933c9f89
`std::fmt::String` impls.
2015-01-15 02:24:36 +01:00
Ty Overby
54061d5eff
Add more documentation and a doc example
2015-01-13 13:37:53 -08:00
TyOverby
97e675ac06
Merge branch 'master' of github.com:TyOverby/bincode
...
Conflicts:
src/writer.rs
2015-01-09 12:58:04 -08:00
TyOverby
6fe6e8d251
update for 1.0.0-alpha
2015-01-09 12:51:58 -08:00
Ty Overby
c7ed0e106c
`decode` takes a slice rather than a vec.
...
Also added comments for the main functions.
2015-01-08 23:32:21 -08:00
Ty Overby
08e726cb10
Added size checking on serialization.
...
Specifying a bound on serialization is optional, so when specified, it
will run a pass over the object and make sure that the serialized object
will fit into the required amount of bytes.
2015-01-08 22:32:59 -08:00
Ty Overby
70ca09a4da
Silence unused variable warning for EncoderWriter.
2015-01-08 11:20:53 -08:00
Ty Overby
23d8310f0b
Fix size estimation of chars.
...
`char` in rust is 32-bits long, but is encoded using utf-8. Previously,
bincode would assume the worst and say that chars are 4-bytes long
always, when in reality, they are often only 1 byte long.
This commit fixes that bug, adds a test for it, and does some general
cleanup in the library.
2015-01-08 11:05:12 -08:00
Ty Overby
dab27229b4
Merge branch 'master' of github.com:TyOverby/bincode
...
Conflicts:
src/reader.rs
2015-01-07 22:30:43 -08:00
Ty Overby
f6cbf9a70d
add bounds checking to DecoderReader
2015-01-07 22:04:54 -08:00
Francesco Mazzoli
7cd16ea194
More robust and precise error handling.
...
When decoding, decoding errors are now isolated from `IoError`s.
2015-01-08 04:02:19 +01:00
Ty Overby
b4023f5281
Fix utf-8 handling when reading malformed messages.
2015-01-07 10:18:39 -08:00
Ty
ee09eb19da
Merge pull request #13 from bitonic/fast-str-read
...
Read strings in one go, not byte-by-byte.
2015-01-06 21:08:33 -08:00
Francesco Mazzoli
12bdc92ff1
Read strings in one go, not byte-by-byte.
...
Also add a test with a unicode char.
2015-01-07 03:31:20 +01:00
Francesco Mazzoli
1d96d861e1
Remove redundant imports
2015-01-07 03:30:54 +01:00
Francesco Mazzoli
cea4129b05
Remove stale comments.
2015-01-07 03:15:37 +01:00
Francesco Mazzoli
14f6b84c88
Update to the latest rustc-serialize
2015-01-07 02:23:05 +01:00
TyOverby
bfbaeaacd1
added size-limits to all functions. Currently the size limits aren't actually enforced.
2015-01-05 11:19:08 -08:00
Ty
602d06d412
Merge pull request #10 from bitonic/master
...
Use u32 to represent variant tags.
2015-01-05 10:58:33 -08:00
Ty Overby
b873c9e75f
added old_orphan_check feature to tests and examples
2015-01-03 15:06:43 -08:00
Francesco Mazzoli
f6b6eefdac
Use u32 to represent variant tags.
...
This makes it possible to exchange binary serialized structures between
different architectures, and reduces bandwidth. I doubt it's even
possible to have more than 4 billions variants anyway :).
2015-01-03 16:33:08 +01:00
Francesco Mazzoli
38058fb6d3
Perform sanity check when reading enum variant.
2015-01-03 04:54:31 +01:00
crhino
8f982f334e
serialize crate has moved out of tree to rustc-serialize.
...
See commit b04bc5cc49
2014-12-24 12:25:57 -05:00
crhino
7e7bd12479
Change closures to FnMut to correspond to change in serialize crate.
2014-12-24 12:22:15 -05:00
crhino
1219fe8cf0
Fix rustc warnings.
2014-12-15 23:15:19 -08:00
crhino
86d7094177
Update to latest rust nightly.
...
- rustc 0.13.0-nightly (126db549b 2014-12-15 00:07:35 +0000)
2014-12-15 20:28:42 -08:00
Ty Overby
4c6006dfb0
update tests to pass with new compiler
2014-11-20 12:08:47 -08:00
TyOverby
133a2bcd43
cleaned up imports
2014-11-13 10:31:29 -08:00
TyOverby
2131a69ec8
Fix `int` serilization / deserialization size.
...
Before this change, encoding an int would be platform
dependent because it would use write_be_int rather than
picking a size up front. This change chooses a size
(64 bit integer) and encodes and decodes with that size.
Closes #5
2014-11-13 10:28:04 -08:00
Theodore DeRego
2763b509ce
Updated to latest rust nightly
2014-11-09 11:42:14 -10:00
Ty Overby
ed96883a53
changed project name to 'bincode'
2014-10-27 09:45:24 -07:00
Theodore DeRego
3ef45f5a1f
Encode/decode to/from references to readers
2014-10-09 13:29:23 -10:00
Ty Overby
cc327bcec3
fix handling of unicode during decode
2014-10-01 23:41:31 -07:00
Ty Overby
7d4cde7212
standardize to u64
2014-09-17 12:22:53 -07:00
Ty Overby
b1a067e151
test vec of enums
2014-09-17 02:45:24 -07:00
Ty Overby
1b316175cb
add todo for when higher order lifetimes land
2014-09-17 02:35:56 -07:00
Ty Overby
9bd822ecf8
renamed project to binary_encode
2014-09-17 02:12:26 -07:00
Ty Overby
e13a2a42b1
implemented helper functions
2014-09-17 01:36:53 -07:00
Ty Overby
fe0a296337
Implemented the reader, added tests
2014-09-15 18:19:04 -07:00
Ty Overby
325eebd201
better formatting
2014-09-15 14:09:38 -07:00
Ty Overby
865a008dd7
compiles without any features
2014-09-15 13:59:11 -07:00