All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning.
Releases may yanked if there is a security bug, a soundness bug, or a regression.
0.14.2 - 2024-08-23
- Disable
derive
feature ofsyn
dependency.
0.14.1 - 2024-01-27
-
Fix "overflow evaluating the requirement" error when the first variant and the other variant have the same type.
-
Fix a bug introduced in 0.14.0.
0.14.0 - 2024-01-27
Note: This release has been yanked due to a bug fixed in 0.14.1.
-
Allow
quote
variables in the trait definition ofquick_derive!
macro.This is considered as a breaking change because it will no longer allow a comma after the trait definition.
-
Change the second argument of
derive_trait
andEnumImpl::from_trait
fromsyn::Path
to&syn::Path
. -
Fix "overflow evaluating the requirement" error on recursive structures without type parameters. (#47)
0.13.2 - 2023-07-27
- Fix diagnostic regression introduced in 0.13.0.
0.13.1 - 2023-06-29
- Fix build error from dependency when built with
-Z minimal-versions
.
0.13.0 - 2023-03-26
- Update
syn
dependency to 2. This increase the minimum supported Rust version from Rust 1.31 to Rust 1.56.
0.12.0 - 2022-01-10
- Remove support for
self: Pin<&(mut) Self>
. See #41 for more.
0.11.2 - 2021-01-05
- Exclude unneeded files from crates.io.
0.11.1 - 2020-12-29
- Documentation improvements.
0.11.0 - 2020-11-06
quick_derive!
,derive_trait
,EnumImpl::from_trait
,EnumImpl::push_method
, andEnumImpl::append_items_from_trait
are now panic if an unsupported trait definition passed, instead of return error. See #35 for details.
0.10.0 - 2020-06-02
-
quick_derive!
macro now accepts bothproc_macro2::TokenStream
andproc_macro::TokenStream
as input. -
quick_derive!
macro no longer supports trait path elision. -
The parentheses that wrap the trait path passed to
quick_derive!
macro are no longer needed. For example:quick_derive! { input, // trait path - (std::iter::Iterator), + std::iter::Iterator, // trait definition trait Iterator { type Item; fn next(&mut self) -> Option<Self::Item>; fn size_hint(&self) -> (usize, Option<usize>); } }
-
The way of specifying super trait's associated types has been changed.
quick_derive! { input, - // super trait's associated types - Item, - // trait path - (std::iter::ExactSizeIterator), + // trait path + std::iter::ExactSizeIterator, + // super trait's associated types + <Item>, // trait definition trait ExactSizeIterator: Iterator { fn len(&self) -> usize; } }
-
Added
derive_trait
function. -
Added
EnumImpl::{new, from_trait}
functions. -
Added
EnumData::{field_types, variant_idents}
methods. -
Removed
derive_trait!
macro in favor ofderive_trait
function. -
Removed
EnumData::make_impl
andEnumData::impl_with_capacity
in favor ofEnumImpl::new
. -
Removed
EnumData::make_impl_trait
andEnumData::impl_trait_with_capacity
in favor ofEnumImpl::from_trait
. -
Removed
EnumImpl::push_generic_param_ident
in favor ofEnumImpl::push_generic_param(TypeParam::from(ident).into())
. -
Removed
MaybeEnum
andEnumElements
in favor ofsyn::parse::<EnumData>()
. -
Removed some hidden APIs.
-
Implemented
Deref<Target = syn::ItemEnum>
,syn::parse::Parse
, andquote::ToTokens
forEnumData
-
Implemented
From<EnumData>
forsyn::ItemEnum
0.9.1 - 2019-09-15
0.9.0 - 2019-08-14
-
Updated
proc-macro2
,syn
, andquote
to 1.0. -
Banned manual implementation of
MaybeEnum
for forward compatibility. -
Added
vis: Visibility
field toEnumElements
. -
Hided some undocumented items from the public API.
0.8.0 - 2019-06-26
-
Added
quote::ToTokens
bound toMaybeEnum
. -
Removed
EnumData::{from_item, from_derive}
in favor ofEnumData::new
-
Improved error messages.
0.7.2 - 2019-05-30
- Improved error messages.
0.7.1 - 2019-05-21
-
Improved support for arbitrary self type.
-
Improved error messages.
0.7.0 - 2019-03-13
-
Transition to Rust 2018. With this change, the minimum required version will go up to Rust 1.31.
-
Improved error messages.
-
Removed
Error
andResult
types. The currentderive_utils
usessyn::Error
andsyn::Result
types.
0.6.3 - 2019-02-05
-
Added
EnumData::new
method. -
Updated minimum
syn
version to 0.15.22. -
Removed dependency on
smallvec
.
0.6.2 - 2019-01-30
-
Added
Error::to_compile_error
method. -
Hided some undocumented items from the public API.
0.6.1 - 2019-01-26
-
Improved support for
self: Pin<&Self>
andself: Pin<&mut Self>
. -
Updated minimum
smallvec
version to 0.6.8.
0.6.0 - 2019-01-09
-
Removed
"std"
feature andstd_root
function.derive_utils
can generate accurate code without"std"
feature. -
Removed deprecated
push_method_pin*
methods. Usepush_method
instead. -
Documentation improvements.
0.5.4 - 2019-01-03
- Documentation improvements.
0.5.3 - 2018-12-27
-
Improved macro implementations. The trailing comma is supported.
-
Improved error messages.
0.5.2 - 2018-12-27
- Hided some undocumented items from the public API.
0.5.1 - 2018-12-26
- Updated to stable Pin API.
Pin::get_mut_unchecked
renamed toPin::get_unchecked_mut
in stabilization.
0.5.0 - 2018-12-23
-
Added
quick_derive
macro. -
Removed
derive_trait_with_capacity
macro.
0.4.0 - 2018-12-22
-
Added support for
self: Pin<&Self>
andself: Pin<&mut Self>
. -
Allow using the trait name as trait path.
0.3.0 - 2018-12-22
- Add
derive_trait
andderive_trait_with_capacity
macros. With this change, the minimum required version will go up to Rust 1.30.
0.2.0 - 2018-12-20
- Support Rust 1.27.
0.1.1 - 2018-12-15
- Add
std::error::Error
impls forderive_utils::Error
.
0.1.0 - 2018-12-15
Note: This release has been yanked.
Initial release