2017-09-22 22:09:12 +00:00
|
|
|
# Changelog [![Crates.io][crate-badge]][crate]
|
|
|
|
All notable changes to this project will be documented in this file.
|
2017-08-24 21:17:30 +00:00
|
|
|
|
2017-09-22 22:09:12 +00:00
|
|
|
The format is based on [Keep a Changelog] and this project adheres to
|
|
|
|
[Semantic Versioning].
|
2017-08-24 21:17:30 +00:00
|
|
|
|
2017-09-22 22:09:12 +00:00
|
|
|
## [Unreleased]
|
2019-11-03 17:00:29 +00:00
|
|
|
|
|
|
|
## [1.1.0] - 2019-11-03
|
2019-10-17 20:28:43 +00:00
|
|
|
### Added
|
|
|
|
- `assert_impl_any!` macro
|
2019-10-18 18:16:55 +00:00
|
|
|
- `assert_impl_one!` macro
|
2019-11-03 00:43:06 +00:00
|
|
|
- `assert_trait_sub_all!` macro
|
|
|
|
- `assert_trait_super_all!` macro
|
2019-11-03 02:59:21 +00:00
|
|
|
- Frequently asked questions to `README.md`
|
2019-08-12 12:51:15 +00:00
|
|
|
|
2019-10-18 18:23:52 +00:00
|
|
|
### Fixed
|
|
|
|
- `assert_eq_size_val!`, `const_assert_eq!`, and `const_assert_ne!` to export
|
2019-10-18 18:59:04 +00:00
|
|
|
their local inner macros. Not having this prevented them from working when
|
|
|
|
`use`d or called directly via `static_assertions::macro!(...)`
|
2019-10-18 18:23:52 +00:00
|
|
|
|
2019-10-18 18:42:53 +00:00
|
|
|
### Removed
|
|
|
|
- Unused `_assert_obj_safe!` from pre-1.0
|
|
|
|
|
2019-11-03 16:56:41 +00:00
|
|
|
## [1.0.0] - 2019-10-02
|
2019-10-02 17:53:25 +00:00
|
|
|
### Added
|
|
|
|
- `assert_eq_align!` macro
|
|
|
|
|
|
|
|
### Removed
|
|
|
|
- **[breaking]** Labels from macros that needed them 🎉
|
|
|
|
- Made possible by [`const _`] in Rust 1.37
|
|
|
|
- **[breaking]** `assert_impl!` macro
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
- `assert_fields!` now works for `enum` types with multiple variants
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
- **[breaking]** `const_assert!` macro to only take one expression
|
|
|
|
- Reasoning: when custom error messages are added in the future (via
|
|
|
|
[`assert!`]), having the macro allow for multiple comma-separated
|
|
|
|
expressions may lead to ambiguity
|
|
|
|
- **[breaking]** Trait assertions to use `Type: Trait` syntax
|
|
|
|
- **[breaking]** Field assertions to use `Type: field1, field2` syntax
|
|
|
|
- **[breaking]** Renamed `assert_{ne,eq}_type!` to `assert_type_{ne,eq}_all!`
|
|
|
|
|
2019-08-12 12:51:15 +00:00
|
|
|
## [0.3.4] - 2019-06-12
|
2019-08-11 20:49:18 +00:00
|
|
|
### Changed
|
|
|
|
- Aliased `assert_impl!` to `assert_impl_all!` and deprecated `assert_impl!`
|
|
|
|
|
2019-08-11 20:20:27 +00:00
|
|
|
### Added
|
2019-08-11 20:49:18 +00:00
|
|
|
- `assert_impl_all!` as replacement to `assert_impl!`
|
2019-08-11 20:20:27 +00:00
|
|
|
- `assert_not_impl_all!` and `assert_not_impl_any!` macro counterparts to
|
2019-10-18 18:59:04 +00:00
|
|
|
`assert_impl_all!`
|
2019-08-11 20:20:27 +00:00
|
|
|
|
2019-08-04 10:15:23 +00:00
|
|
|
### Fixed
|
2019-08-11 20:20:27 +00:00
|
|
|
- `assert_eq_type!` now works with types involving lifetimes
|
2019-06-12 18:02:02 +00:00
|
|
|
|
|
|
|
## [0.3.3] - 2019-06-12
|
2019-05-17 14:24:33 +00:00
|
|
|
### Added
|
|
|
|
- `const_assert_ne!` macro counterpart to `const_assert_eq!`
|
2019-05-14 23:09:44 +00:00
|
|
|
|
2019-05-17 14:28:56 +00:00
|
|
|
### Fixed
|
|
|
|
- `assert_eq_type!` would pass when types can coerce via `Deref`, such as with
|
|
|
|
`str` and `String`
|
|
|
|
|
2019-05-14 23:09:44 +00:00
|
|
|
## [0.3.2] - 2019-05-15
|
2019-05-14 21:28:47 +00:00
|
|
|
### Added
|
|
|
|
- A `assert_eq_type!` macro that allows for checking whether inputs are the same
|
2019-10-18 18:59:04 +00:00
|
|
|
concrete type
|
2019-05-14 22:50:08 +00:00
|
|
|
- A `assert_ne_type!` macro for checking whether inputs all refer to different
|
2019-10-18 18:59:04 +00:00
|
|
|
types
|
2019-05-14 21:28:47 +00:00
|
|
|
|
2019-05-04 10:13:55 +00:00
|
|
|
### Fixed
|
|
|
|
- `const_assert!` now only takes `bool` values whereas integer (or other type)
|
2019-10-18 18:59:04 +00:00
|
|
|
values could previously be passed
|
2018-11-15 20:23:51 +00:00
|
|
|
|
|
|
|
## [0.3.1] - 2018-11-15
|
2018-11-15 19:56:16 +00:00
|
|
|
### Fixed
|
|
|
|
- Macros that refer to other internal macros can now be imported when compiling
|
2019-10-18 18:59:04 +00:00
|
|
|
for Rust 2018 ([issue
|
|
|
|
#10](https://github.com/nvzqz/static-assertions-rs/issues/10))
|
2018-11-14 17:07:49 +00:00
|
|
|
|
|
|
|
## [0.3.0] - 2018-11-14
|
2018-11-14 06:58:12 +00:00
|
|
|
### Changed
|
|
|
|
- Bumped minimum supported (automatically tested) Rust version to 1.24.0
|
2018-11-14 16:53:07 +00:00
|
|
|
- Moved message parameter for `assert_cfg!()` to last argument position, making
|
2019-10-18 18:59:04 +00:00
|
|
|
it consistent with other macros
|
2018-11-14 06:58:12 +00:00
|
|
|
|
2018-11-14 06:36:06 +00:00
|
|
|
### Removed
|
|
|
|
- No need to use `macro!(label; ...)` syntax when compiling on nightly Rust and
|
2019-10-18 18:59:04 +00:00
|
|
|
enabling the `nightly` feature flag
|
2017-12-12 06:22:31 +00:00
|
|
|
|
|
|
|
## [0.2.5] - 2017-12-12
|
2017-12-12 06:14:03 +00:00
|
|
|
### Changed
|
|
|
|
- `assert_eq_size_ptr` wraps its code inside of a closure, ensuring that the
|
2019-10-18 18:59:04 +00:00
|
|
|
unsafe code inside never runs
|
2017-12-12 06:19:49 +00:00
|
|
|
- Clippy no longer warns about `unneeded_field_pattern` within `assert_fields`
|
2017-12-12 06:14:03 +00:00
|
|
|
|
2017-12-11 15:56:08 +00:00
|
|
|
### Added
|
|
|
|
- Much better documentation with test examples that are guaranteed to fail at
|
2019-10-18 18:59:04 +00:00
|
|
|
compile-time
|
2017-12-11 15:56:08 +00:00
|
|
|
|
2017-12-11 10:53:04 +00:00
|
|
|
### Removed
|
|
|
|
- Removed testing features; compile failure tests are now done via doc tests
|
2017-12-11 08:50:25 +00:00
|
|
|
|
|
|
|
## [0.2.4] - 2017-12-11
|
2017-11-08 20:00:09 +00:00
|
|
|
### Removed
|
|
|
|
- Removed the actual call to `mem::transmute` while still utilizing it for size
|
2019-10-18 18:59:04 +00:00
|
|
|
verification ([Simon Sapin], [#5])
|
2017-11-08 20:00:09 +00:00
|
|
|
|
2017-09-22 22:17:32 +00:00
|
|
|
### Added
|
2017-12-11 08:45:11 +00:00
|
|
|
- `assert_cfg` macro that asserts that the given configuration is set
|
2017-09-22 22:17:32 +00:00
|
|
|
- `assert_fields` macro to assert that a struct type or enum variant has a given
|
2019-10-18 18:59:04 +00:00
|
|
|
field
|
2017-09-22 22:17:32 +00:00
|
|
|
|
|
|
|
### Fixed
|
|
|
|
- Allow more generics flexibility in `assert_impl`
|
2017-08-24 21:17:30 +00:00
|
|
|
|
2017-09-22 22:09:12 +00:00
|
|
|
## [0.2.3] - 2017-08-24
|
2017-09-22 22:20:12 +00:00
|
|
|
### Fixed
|
2017-08-24 21:21:21 +00:00
|
|
|
- Trailing commas are now allowed
|
|
|
|
|
2017-09-22 22:09:12 +00:00
|
|
|
### Removed
|
|
|
|
- Removed clippy warnings
|
2017-08-24 21:17:30 +00:00
|
|
|
|
2017-09-22 22:09:12 +00:00
|
|
|
## [0.2.2] - 2017-08-13
|
|
|
|
### Added
|
2017-08-24 21:17:30 +00:00
|
|
|
- Added `assert_impl` macro to ensure a type implements a given set of traits
|
|
|
|
|
2017-09-22 22:09:12 +00:00
|
|
|
## [0.2.1] - 2017-08-13
|
|
|
|
### Added
|
2017-08-24 21:17:30 +00:00
|
|
|
- Added `assert_obj_safe` macro for ensuring that a trait is object-safe
|
|
|
|
|
2017-09-22 22:09:12 +00:00
|
|
|
## [0.2.0] - 2017-08-12
|
|
|
|
### Added
|
2017-08-24 21:17:30 +00:00
|
|
|
- Added `assert_eq_size_ptr` macro
|
2017-09-22 22:20:12 +00:00
|
|
|
|
|
|
|
### Fixed
|
2017-09-22 22:09:12 +00:00
|
|
|
- Allow `assert_eq_size`, `const_assert`, and `const_assert_eq` in non-function
|
2019-10-18 18:59:04 +00:00
|
|
|
contexts via providing a unique label [#1]
|
2017-08-24 21:17:30 +00:00
|
|
|
|
2017-09-22 22:09:12 +00:00
|
|
|
### Removed
|
|
|
|
- **[Breaking]** Semicolon-separated `assert_eq_size` is no longer allowed
|
2017-08-24 21:17:30 +00:00
|
|
|
|
2017-09-22 22:09:12 +00:00
|
|
|
## [0.1.1] - 2017-08-12
|
|
|
|
### Added
|
2017-08-24 21:17:30 +00:00
|
|
|
- Added `const_assert_eq` macro
|
|
|
|
|
2017-09-22 22:09:12 +00:00
|
|
|
## 0.1.0 - 2017-08-12
|
|
|
|
|
|
|
|
Initial release
|
2017-08-24 21:17:30 +00:00
|
|
|
|
2017-11-08 20:00:09 +00:00
|
|
|
[Simon Sapin]: https://github.com/SimonSapin
|
|
|
|
|
2019-10-02 17:53:25 +00:00
|
|
|
[`assert!`]: https://doc.rust-lang.org/stable/std/macro.assert.html
|
|
|
|
[`const _`]: https://github.com/rust-lang/rfcs/blob/master/text/2526-const-wildcard.md
|
|
|
|
|
2017-09-22 22:09:12 +00:00
|
|
|
[#1]: https://github.com/nvzqz/static-assertions-rs/issues/1
|
2017-11-08 20:00:09 +00:00
|
|
|
[#5]: https://github.com/nvzqz/static-assertions-rs/pull/5
|
2017-08-24 21:17:30 +00:00
|
|
|
|
2017-09-22 22:09:12 +00:00
|
|
|
[crate]: https://crates.io/crates/static_assertions
|
|
|
|
[crate-badge]: https://img.shields.io/crates/v/static_assertions.svg
|
2017-08-24 21:17:30 +00:00
|
|
|
|
2017-09-22 22:09:12 +00:00
|
|
|
[Keep a Changelog]: http://keepachangelog.com/en/1.0.0/
|
|
|
|
[Semantic Versioning]: http://semver.org/spec/v2.0.0.html
|
2017-08-24 21:17:30 +00:00
|
|
|
|
2019-11-03 17:00:29 +00:00
|
|
|
[Unreleased]: https://github.com/nvzqz/static-assertions-rs/compare/v1.1.0...HEAD
|
|
|
|
[1.1.0]: https://github.com/nvzqz/static-assertions-rs/compare/v1.0.0...v1.1.0
|
2019-10-02 17:53:25 +00:00
|
|
|
[1.0.0]: https://github.com/nvzqz/static-assertions-rs/compare/v0.3.4...v1.0.0
|
2019-08-12 12:51:15 +00:00
|
|
|
[0.3.4]: https://github.com/nvzqz/static-assertions-rs/compare/v0.3.3...v0.3.4
|
2019-06-12 18:02:02 +00:00
|
|
|
[0.3.3]: https://github.com/nvzqz/static-assertions-rs/compare/v0.3.2...v0.3.3
|
2019-05-14 23:09:44 +00:00
|
|
|
[0.3.2]: https://github.com/nvzqz/static-assertions-rs/compare/v0.3.1...v0.3.2
|
2018-11-15 20:23:51 +00:00
|
|
|
[0.3.1]: https://github.com/nvzqz/static-assertions-rs/compare/v0.3.0...v0.3.1
|
2018-11-14 17:07:49 +00:00
|
|
|
[0.3.0]: https://github.com/nvzqz/static-assertions-rs/compare/v0.2.5...v0.3.0
|
2017-12-12 06:22:31 +00:00
|
|
|
[0.2.5]: https://github.com/nvzqz/static-assertions-rs/compare/v0.2.4...v0.2.5
|
2017-12-11 08:50:25 +00:00
|
|
|
[0.2.4]: https://github.com/nvzqz/static-assertions-rs/compare/v0.2.3...v0.2.4
|
2017-09-22 22:09:12 +00:00
|
|
|
[0.2.3]: https://github.com/nvzqz/static-assertions-rs/compare/v0.2.2...v0.2.3
|
|
|
|
[0.2.2]: https://github.com/nvzqz/static-assertions-rs/compare/v0.2.1...v0.2.2
|
|
|
|
[0.2.1]: https://github.com/nvzqz/static-assertions-rs/compare/v0.2.0...v0.2.1
|
|
|
|
[0.2.0]: https://github.com/nvzqz/static-assertions-rs/compare/v0.1.1...v0.2.0
|
|
|
|
[0.1.1]: https://github.com/nvzqz/static-assertions-rs/compare/v0.1.0...v0.1.1
|