Closed taiki-e closed 4 years ago
quick_derive! macro now accepts both proc_macro2::TokenStream and proc_macro::TokenStream as input.
quick_derive!
proc_macro2::TokenStream
proc_macro::TokenStream
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.
derive_trait
Added EnumImpl::{new, from_trait} functions.
EnumImpl::{new, from_trait}
Added EnumData::{field_types, variant_idents} methods.
EnumData::{field_types, variant_idents}
Removed derive_trait! macro in favor of derive_trait function.
derive_trait!
Removed EnumData::make_impl and EnumData::impl_with_capacity in favor of EnumImpl::new.
EnumData::make_impl
EnumData::impl_with_capacity
EnumImpl::new
Removed EnumData::make_impl_trait and EnumData::impl_trait_with_capacity in favor of EnumImpl::from_trait.
EnumData::make_impl_trait
EnumData::impl_trait_with_capacity
EnumImpl::from_trait
Removed EnumImpl::push_generic_param_ident in favor of EnumImpl::push_generic_param(TypeParam::from(ident).into()).
EnumImpl::push_generic_param_ident
EnumImpl::push_generic_param(TypeParam::from(ident).into())
Removed MaybeEnum and EnumElements in favor of syn::parse::<EnumData>().
MaybeEnum
EnumElements
syn::parse::<EnumData>()
Removed some hidden APIs.
Implemented Deref<Target = syn::ItemEnum>, syn::parse::Parse, and quote::ToTokens for EnumData
Deref<Target = syn::ItemEnum>
syn::parse::Parse
quote::ToTokens
EnumData
Implemented From<EnumData> for syn::ItemEnum
From<EnumData>
syn::ItemEnum
bors r+
Build succeeded:
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:The way of specifying super trait's associated types has been changed.
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