All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added: for new features.
- Changed: for changes in existing functionality.
- Deprecated: for soon-to-be removed features.
- Removed: for now removed features.
- Fixed: for any bug fixes.
- Security: in case of vulnerabilities.
- Add support for building without the standard library.
- Add a
const fn
,DynStack::new_unchecked
. Allows static initialization. This makes the minimum required compiler version 1.39. - Implement
Iterator::size_hint
andExactSizeIterator
forDynStackIter
andDynStackIterMut
.
- Don't allocate memory in
DynStack::new
. Postpone allocation until the first push. - Upgrade the crate to Rust 2018 edition.
- Implement
Send
and/orSync
forDynStack<T>
ifT
isSend
/Sync
.
- Assert that
T
is a trait object inDynStack::new
. Prevents using the stack on normal objects, that could have caused undefined behavior. - Check fat pointer memory layout at build time. Makes this crate fail to build if the memory representation of a trait object ever changes. Hopefully preventing undefined behavior.
Just removed large binary files that were accidentally included in the package uploaded to crates.io. Otherwise identical to 0.2.0.
- Correctly drop in remove_last, prevent overflow panics.
- Correctly handle alignments greater than 16 by moving data if necessary.