bytemuck/changelog.md

85 lines
3.4 KiB
Markdown
Raw Normal View History

2019-11-26 03:32:13 +00:00
# `bytemuck` changelog
2021-02-18 04:46:31 +00:00
## 1.5.1
* Fix `bytes_of` failing on zero sized types.
[PR 53](https://github.com/Lokathor/bytemuck/pull/53)
2021-01-13 23:52:23 +00:00
## 1.5
* Added `pod_collect_to_vec`, which will gather a slice into a vec,
allowing you to change the pod type while also safely ignoring alignment.
[PR 50](https://github.com/Lokathor/bytemuck/pull/50)
2020-10-21 20:17:20 +00:00
## 1.4.2
2021-01-13 23:52:23 +00:00
* [Kimundi](https://github.com/Kimundi) fixed an issue that could make `try_zeroed_box`
stack overflow for large values at low optimization levels.
2020-10-21 20:17:20 +00:00
[PR 43](https://github.com/Lokathor/bytemuck/pull/43)
## 1.4.1
* [thomcc](https://github.com/thomcc) fixed up the CI and patched over a soundness hole in `offset_of!`.
[PR 38](https://github.com/Lokathor/bytemuck/pull/38)
2020-08-20 03:45:09 +00:00
## 1.4
2020-08-21 01:40:38 +00:00
* [icewind1991](https://github.com/icewind1991) has contributed the proc-macros
for deriving impls of `Pod`, `TransparentWrapper`, `Zeroable`!! Everyone has
been waiting for this one folks! It's a big deal. Just enable the `derive`
cargo feature and then you'll be able to derive the traits on your types. It
generates all the appropriate tests for you.
2020-08-20 03:45:09 +00:00
* The `zeroable_maybe_uninit` feature now adds a `Zeroable` impl to the
2020-08-21 01:40:38 +00:00
`MaybeUninit` type. This is only behind a feature flag because `MaybeUninit`
didn't exist back in `1.34.0` (the minimum rust version of `bytemuck`).
2020-08-20 03:45:09 +00:00
2020-07-25 21:43:31 +00:00
## 1.3.1
2020-07-24 01:30:33 +00:00
2020-07-25 02:36:38 +00:00
* The entire crate is now available under the `Apache-2.0 OR MIT` license as
well as the previous `Zlib` license
[#24](https://github.com/Lokathor/bytemuck/pull/24).
2020-07-24 02:22:43 +00:00
* [HeroicKatora](https://github.com/HeroicKatora) added the
`try_zeroed_slice_box` function
2020-07-25 02:34:51 +00:00
[#10](https://github.com/Lokathor/bytemuck/pull/17). `zeroed_slice_box` is
also available.
2020-07-24 02:22:43 +00:00
* The `offset_of!` macro now supports a 2-arg version. For types that impl
Default, it'll just make an instance using `default` and then call over to the
3-arg version.
* The `PodCastError` type now supports `Hash` and `Display`. Also if you enable
the `extern_crate_std` feature then it will support `std::error::Error`.
2020-07-24 12:58:37 +00:00
* We now provide a `TransparentWrapper<T>` impl for `core::num::Wrapper<T>`.
2020-07-25 02:43:32 +00:00
* The error type of `try_from_bytes` and `try_from_bytes_mut` when the input
isn't aligned has been corrected from being `AlignmentMismatch` (intended for
allocation casting only) to `TargetAlignmentGreaterAndInputNotAligned`.
2020-07-24 01:30:33 +00:00
2020-07-25 21:43:31 +00:00
## 1.3.0
* Had a bug because the CI was messed up! It wasn't soundness related, because
it prevented the crate from building entirely if the `extern_crate_alloc`
feature was used. Still, this is yanked, sorry.
2020-02-07 03:44:33 +00:00
## 1.2.0
* [thomcc](https://github.com/thomcc) added many things:
2020-07-24 02:22:43 +00:00
* A fully sound `offset_of!` macro
[#10](https://github.com/Lokathor/bytemuck/pull/10)
2020-02-07 03:44:33 +00:00
* A `Contiguous` trait for when you've got enums with declared values
all in a row [#12](https://github.com/Lokathor/bytemuck/pull/12)
* A `TransparentWrapper` marker trait for when you want to more clearly
enable adding and removing a wrapper struct to its inner value
[#15](https://github.com/Lokathor/bytemuck/pull/15)
2020-07-24 12:59:00 +00:00
* Now MIRI is run on CI in every single push!
2020-02-07 03:44:33 +00:00
[#16](https://github.com/Lokathor/bytemuck/pull/16)
2019-12-06 19:41:48 +00:00
## 1.1.0
* [SimonSapin](https://github.com/SimonSapin) added `from_bytes`,
`from_bytes_mut`, `try_from_bytes`, and `try_from_bytes_mut` ([PR
Link](https://github.com/Lokathor/bytemuck/pull/8))
2019-11-26 03:32:13 +00:00
## 1.0.1
* Changed to the [zlib](https://opensource.org/licenses/Zlib) license.
* Added much more proper documentation.
* Reduced the minimum Rust version to 1.34