Commit Graph

28 Commits

Author SHA1 Message Date
Lena Hellström 1a76db8540 Fix CI on trunk (#408)
CI was currently broken for two reasons

    trunk was not compliant with the 1.41 MSRV check
    clippy had new warnings

Since bincode 2.0 is not even in alpha yet MSRV should not be locked in place. This PR removes the MSRV checks for now. Additionally the few clippy warnings have been resolved.
2021-10-07 14:20:55 +02:00
Ben Kimock 5c541a297a Optimize varint parsing (#337)
* Add benchmarks for varint parsing

* Enable more inlining

* Outline error construction

* Add provided functions to BincodeRead to customize reading of literals

* Add #[inline] to deserialize_byte

* Outline SliceReader::unexpected_eof so that deserialize_varint inlines

* Implement BincodeRead for std::io::BufReader

* Reimplement all of BincodeRead in terms of BufRead-like functions

* Move branch into error-creation function to get below inline threshold
2021-06-19 18:16:13 -07:00
Lena Hellström e39a047b4b prep branch for 2.0 work (#379)
* prep branch for 2.0 work

* switch to 2018 edition

* fix clippy issues

* fix tests

* fix warnings

* fix formatting
2021-04-08 14:54:31 +02:00
Lena Hellström 00c43bf3b1 fix logic error in fill_buffer (#336) 2020-06-23 23:41:55 -07:00
Lena Hellström e80f61b9da Reject trailing bytes (#198) 2020-05-26 12:40:04 -07:00
Lena Hellström 2355e48a7b expose default options and serializers (#310)
Deprecate the old config system and make a refined version of the internal config system public. Doing allows the Serializer/Deserializer to be exposed since all of its generic type parameters are now public.
2020-04-16 15:23:07 -07:00
Lena Hellström 8839b0600d Modernize CI (#311)
Switches our CI from Travis-CI to Github Actions. At the same time this also turns on clippy and rustfmt linting.
2020-03-24 14:33:13 -07:00
Lena Hellström ae8c162d49 remove unsafe code in IoReader (#309) 2020-03-19 17:46:13 -07:00
Lena Hellström 15379ee5b2 Overoptimize slice reader (#308)
The default read implementation on slices was not generating efficient code. This custom implementation generates much smaller assembly with fewer function calls.
2020-03-18 14:54:54 -07:00
Joonatan Saarhelo 237e6852e9 remove unnecessary let in ReadReader 2020-01-21 09:21:43 +00:00
Joonatan Saarhelo 858cee9a22 deduplicate slicing logic SliceReader 2020-01-21 09:21:43 +00:00
Joonatan Saarhelo 28da4dbf56 improve documentation of BincodeRead 2020-01-21 09:21:43 +00:00
Josh Mcguigan c06b18abed improve safety of fill_buffer - see issue #260 2019-10-30 21:06:56 -04:00
alecmocatta ecbef8d1bb add remaining _seed variants of deserialize functions 2019-09-06 17:38:28 -04:00
Ty Overby d8704644d7 format 2018-09-04 16:25:10 -07:00
Ty Overby 24b007e194 public but hidden read types 2018-02-07 20:13:26 -08:00
Ty Overby b31151a605 2nd implementation of the Config Trait (#214)
* add option and config traits

* thread options everywhere

* add WithOtherLimit, WithOtherEndian, and update internal to take advantage of it

* wip

* add rest of the public API and fix tests

* dtolnay feedback

* remove serialized_size_bounded and replace it with a use of config

* remove inline from trait method

* finish documentation and add custom reader support

* minor config_map refactor

* doc changes

* add with_(de)serializer functions and their associated modules
2018-02-07 18:26:46 -08:00
Kyle Huey 093bc24a13 Elide unnecessary copy when consuming a byte buffer. (#223) 2017-12-01 10:26:08 -08:00
Ty Overby 3a24da087b cargo fmt source 2017-10-13 08:57:04 -07:00
Ty Overby c8f02e30aa 177 invalid encodings (#212)
* split out invalid encoding errors

* detail breaking changes
2017-10-12 09:04:14 -07:00
Jeff Muizelaar d033583700 Forward read_exact() as well as read(). (#207)
If we don't do this we end up using the generic read_exact method
which is not necessarily optimal. This is especially when
using a specialized Read implementation to go fast.
See https://github.com/TyOverby/bincode/issues/206
2017-10-10 10:20:34 -07:00
Lena Hellström 34aba9acbe Internal type names (#199)
* Remove internal type names from api

* Rename IoReadReader to IoReader
2017-07-23 21:57:53 -07:00
David Tolnay 815c44287a Merge pull request #194 from dgriffen/io-variant-names 2017-07-22 13:32:46 -07:00
Lena Hellström 18bcfc420e Seal SizeLimit and BincodeRead 2017-07-22 14:37:08 -05:00
Lena Hellström d55bbf150f Remove naming redundancy with IoError 2017-07-18 21:54:23 -07:00
Ty Overby 8be2e87415 factor out some common functionality 2017-04-20 22:20:56 -07:00
Ty Overby cb7e9f87eb fix buffer length bug 2017-04-20 22:11:28 -07:00
Ty Overby 6692674f43 WIP Implement nocopy support for bincode (#150)
* basic infrastructure

* use BincodeRead internally

* fix zero copy behavior

* rearrange module layout; remove pub(crate)

* add size-limit safety checks when deserializing str or bytes

* fix-up tests
2017-04-20 18:27:22 -07:00