Commit Graph

157 Commits

Author SHA1 Message Date
Trangar 958b439c38 Release rc.3 (#628)
Co-authored-by: Victor Koenders <victor.koenders@qrtech.se>
2023-03-30 16:12:47 +02:00
Trangar 00c5cb0ff0 Release 2.0.0-rc.2 (#588) 2022-10-04 13:27:43 +02:00
Gimgim ac44658bfb Document what the usizes are for (#546) (#577)
* Document what the usize is for

* Document the usize

Co-authored-by: Trangar <gpg@trangar.com>
2022-08-18 17:47:19 +00:00
Trangar 86e03aeda7 Rewrite: seperated Decode and BorrowDecode (#526)
* Rewrite: seperated Decode and BorrowDecode

* Fixed cargo.toml issues

* Fixed clippy warning

* Removed the `impl_tuples` macro call with manually exported code

* Replaced the generated code in `impl_tuples` with the macro instead

* Implemented BorrowDecode for Box<[T]>

* Added a test to see if zoxide can be ported to bincode 2

* Added a test for Arc<str>

* Made several `Encode` implementations require `T: ?Sized`

* Implemented Decode for Arc<str>

* Added BlockedTODO links to commented out code

* Fixed clippy and lint issues

* Updated virtue dependency in fuzz lockfile
2022-06-04 15:23:55 +02:00
Sean Cross d7edfaa0b7 Fix riscv32 atomics and fix tests on 32-bit platforms (#533)
* tests: fix alloc range test on 32-bit Windows

This test checks the range, which is necessarily different when running
on another platform.

Signed-off-by: Sean Cross <sean@xobs.io>

* enc: case usize/isize as u64/i64 in serialization

The deserialization process assumes that usize/isize are 64-bits, as
does the spec at
https://github.com/bincode-org/bincode/blob/trunk/docs/spec.md#varintencoding

Force `usize` and `isize` to be encoded as `u64` and `i64` to force
32-bit platforms to conform to this spec.

This fixes running tests under `cargo test --target i686-pc-windows-msvc`

Signed-off-by: Sean Cross <sean@xobs.io>

* atomic: only provide Atomic*64 on supported platforms

Not all platforms support AtomicI64 or AtomicU64. Use the
`target_has_atomic` config flag to determine whether to include these.

This fixes #532.

Signed-off-by: Sean Cross <sean@xobs.io>

* atomic: remove feature and use new attributes

Now that there is an attribute to indicate which atomic features are
supported on this platform, remove the `atomic` Feature and use these
new attributes.

Signed-off-by: Sean Cross <sean@xobs.io>

* alloc: run `cargo fmt`

Signed-off-by: Sean Cross <sean@xobs.io>
2022-04-08 11:35:13 +02:00
Trangar fe611f77c0 Release 2.0.0-rc.1 (#510) 2022-03-04 11:05:38 +01:00
Trangar caa71b5d9f Added HashSet (#516)
* Added HashSet

* Added hashset to the same tests that hashmap has
2022-03-03 15:23:53 +01:00
Trangar 7c72e4c1fa Release v2.0.0-beta.3 (#505) 2022-02-16 12:53:44 +01:00
Trangar 3c64d7dbbe Added a table to the documentation to pick which functions to use (#490)
* Added a table to the documentation to pick which functions to use

* Forgot cargo fmt

* Added a line on custom readers and writers
2022-01-24 16:45:41 +01:00
Trangar 25dd4debc4 Release v2.0.0-beta.2 (#488) 2022-01-23 10:15:00 +01:00
Trangar 09e7a6265d Release v2.0.0-beta.1 (#484) 2022-01-19 19:11:35 +01:00
Trangar a00f37ee59 Migration guide (#482)
* Added a guide on how to migrate from bincode 1 to 2

* Removed unneeded dependency on bincode 1

* Processed feedback

* Added a link to the migration guide, added `#[cfg(doc)]` to the doc modules
2022-01-19 19:04:20 +01:00
Trangar d13d177bea made the serde functions consistent with the base bincode functions (#483) 2022-01-19 18:57:52 +01:00
Trangar 59b787cbf8 Moved Configuration::standard() and ::legacy() to the config module (#481)
* Moved Configuration::standard() and ::legacy() to the config module

* Fixed issue with config that would overwrite the limit, added a checklist on adding config variables
2022-01-19 16:46:25 +01:00
Trangar a08e528cc7 Release v2.0.0-beta.0 (#464) 2022-01-08 15:42:49 +01:00
Trangar 45c0fa7782 Release v2.0.0-alpha.2 (#455) 2021-12-14 15:27:40 +01:00
Trangar 404946f12b [Breaking change] Made all `decode_from_slice` also return the number of bytes read (#445) 2021-12-11 15:51:50 +01:00
Trangar bb3612103a Fixed clippy warnings (#447) 2021-12-10 17:39:35 +01:00
Trangar 4be23b88de Added Decode/Encode for HashMap<K, V> (#438) 2021-11-22 15:18:58 +01:00
Trangar c4fd7efa49 Release 2.0.0-alpha.1 (#435) 2021-11-09 10:15:12 +01:00
Trangar ad7ddebff3 Allow serde types to be Decode/Encoded (#434)
* Added support for #[bincode(serde)] attribute on fields, added SerdeToBincode helper struct

* Switch to using Compat/BorrowCompat

* Moved all the serde features and functions to its own module

* Fix broken link

* Added support for the bincode(with_serde) attribute in enum variants

* Updated the main documentation on serde, fixed an example not compiling under certain feature flag combinations

* Added #[serde(flatten)] to the list of problematic attributes

* Added better error reporting on invalid attributes
2021-11-09 10:08:47 +01:00
Trangar 8c1279feab functions to enable encoding/decoding serde types (#422)
* functions to enable encoding/decoding serde types
* Removed dev feature I forgot to remove
* Centralized option variant and len() decoding/encoding
2021-11-08 12:38:29 +01:00
Trangar cc13be30d4 split off BorrowDecode from Decode in bincode_derive (#432)
* split off BorrowDecode from Decode in bincode_derive

* Added test case for issue #431

* Fixed Cow implementation having the wrong constraint, added BlockedTODO for cow implementation specialization

* Re-exported the Decode and Encode traits in the crate root

* Removed outdated comments

* Removed some :🇩🇪:Decode that were introduced by the merge
2021-11-07 10:57:35 +01:00
Trangar 0c13c891c5 Updated readme.md and added a test for the examples (#417)
* Updated readme.md and added a test for the examples

* Removed tests/readme.rs and made the readme doctest a (hidden) part of lib.rs
2021-10-25 10:26:23 +02:00
Lena Hellström 99de47a6c8 Reintroduce varint optimizations 2021-10-24 16:44:36 +02:00
Victor Koenders bd994e354d Updated documentation of Encode, added an example to lib.rs 2021-10-21 14:45:16 +02:00
Victor Koenders dae645f675 Joined the 2 Sealed traits into a single one 2021-10-21 14:27:03 +02:00
Victor Koenders 707d0d238f Made all encode and decode functions always require a Config, removed _with_config functions 2021-10-21 14:19:40 +02:00
Victor Koenders dd7e8e8e43 Changed bincode version to 2.0.0-alpha.0 2021-10-21 13:39:45 +02:00
Victor Koenders f70e94a427 Added dedicated error for `std::path::Path` encoding. Fixed broken link in documentation. 2021-10-21 13:29:03 +02:00
Victor Koenders 07b3c8cd76 Made the Decode of [T; N] properly drop all instances of T when an error has occured 2021-10-21 11:57:24 +02:00
Victor Koenders 151edf46d3 Included spec.md into cargo's documentation, fixed the issues, changed the [u8; N] implementations to [T; N] 2021-10-21 11:57:16 +02:00
Lena Hellström 684f2562b1 Config rewrite (#412)
Rewrite the config system to be slightly more friendly to adding new options
2021-10-17 21:07:31 +02:00
Victor Koenders 4807ea6be2 Added warning on unused lifetimes, fixed warnings 2021-10-17 16:43:18 +02:00
Lena Hellström e232454936 Refactor and rename encoders 2021-10-17 16:22:14 +02:00
Victor Koenders 61c1e8a7cd Added badges to the functions to indicate which features they require 2021-10-17 15:00:14 +02:00
Victor Koenders b480d2b3b3 Added documentation for the src/ module. Added warning for missing docs, fixed missing docs in src/de/mod.rs 2021-10-14 18:04:13 +02:00
Victor Koenders a8680ce1d8 Started working on documentation 2021-10-12 18:18:43 +02:00
Trangar a27b63b7fa Make bincode_derive 0 dependencies (#409)
Removed `syn`, `quote` and `proc_macro2` dependency
2021-10-12 15:53:02 +02:00
Victor Koenders 254b87c6eb Moved all feature flags to src/features, made the CI run tests on all feature combinations 2021-09-22 16:23:27 +02:00
Lena Hellström 4b672de110 Enable non-slice readers 2021-09-22 15:08:52 +02:00
Victor Koenders 9c7fb85e0e Added support for slices, str, fixed size arrays. Added lifetime to Decode trait 2021-09-22 12:03:00 +02:00
Victor Koenders ffb565c405 Added config options for endian and int_encoding, added full coverage for all basic integer types 2021-09-22 10:40:27 +02:00
Victor Koenders ccca6ee49e Split Error into EncodeError and DecodeError 2021-09-19 10:52:21 +02:00
Victor Koenders 723bdd312a Turned Config::INT_ENCODING back into a const, made a ton of varint_encode functions 2021-09-19 09:25:47 +02:00
Victor Koenders bab0cf4bd1 Started working on bincode_derive 2021-09-13 13:20:47 +02:00
Lena Hellström b7c0d1fac0 reorganize de/enc modules 2021-06-20 00:12:10 +02:00
Lena Hellström e160c73acb a fresh new start 2021-06-19 19:31:34 +02: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 810086e473 fix linting ci error (#377) 2021-02-23 12:09:15 -08:00