The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Let
#[autoimpl]
on traits support function arguments usingmut
and destructuring patterns (#45) - Improve documentation for
#[autoimpl]
(#46)
Re-release, bumping impl-tools-lib
to v0.11.0 since it turns out that switching to proc-macro-error2
was an API-breaking release for impl-tools-lib
(this is only apparent if a macro emits an error, resulting in a message like "help: message: proc-macro-error2 API cannot be used outside of entry_point
invocation, perhaps you forgot to annotate your #[proc_macro] function with `#[proc_macro_error]
").
impl-tools
is unaffected excepting where an incompatible version of impl-tools-lib
is used. Broken versions will be yanked.
- Improve CI workflows (#38)
- Explicit MSRV = 1.58 (#38)
- Replace dependency
proc-macro-error
withproc-macro-error2
(#41) - Bump MSRV to 1.61 (#42)
- Rename
singleton!
→impl_anon!
(#36) - Reorganise
impl-tools-lib
: newanon
andscope
public modules (#36)
- Fix clone for fields which auto-deref (issue #34)
- Update to syn v2.0.0
- Bump MSRV to 1.58.0 (#31)
#[autoimpl(Clone, Debug, PartialEq, Eq, Hash)]
now all support enums (with optionalwhere
clause, withoutignore
clauses) (#31)- Add
impl_tools_lib::ImplTrait::enum_impl
,enum_items
with default impls;ImplTraits::expand
now supports enums (#31) - Add
impl_tools_lib::Ident_formatter
utility (#31)
Note: PartialOrd, Ord
could now support enums (unimplemented). ignore
and
using
clauses are deliberately not supported (due to syntactic ambiguity).
- Fix
#[autoimpl]
on traits: copy#[cfg(..)]
attributes (#30)
- Better diagnostics for trait-redefinition: require
Deref
bound (#28) - Document
Deref
with customTarget
type
impl-tools-lib
has breaking changes and therefore a higher version number:
- Replace free function
impl_generics
with methodGenerics::impl_generics
- Add method
Generics::ty_generics
Note: next breaking release for impl-tools
should bump version to match -lib
.
- Add
ImplTrait::support_path_args
,ImplArgs::path_args
(#26) - Path args: support
Deref<Target = Foo>
(#26)
- Add
singleton!
macro (#25)
- Fix: do not copy attributes on trait items (#24)
#[autoimpl]
on traits now merges trait generics with macro generics (#21)lib::autoimpl::struct_items
returns the trait path in addition to impl items (#22)- Add
lib::autoimpl::ImplArgs::for_fields
,for_fields_iter
(#22) - Add autoimpl support for
Copy
,AsRef
,AsMut
,Borrow
,BorrowMut
,PartialEq
,Eq
,PartialOrd
,Ord
,Hash
(#22) - Add
#[automatically_derived]
annotation to generated impls (#22)
- Fix
#[autoimpl]
on traits for items with where bounds onSelf
(#20)
- Fix
#[autoimpl]
on traits for GATs with where clauses (#19)
- Correct release of 0.4.1 (which bumped the version of impl-tools without bumping impl-tools-lib) (#18)
- Fix
#[autoimpl]
on traits for GATs and attributes on trait const/method/type items (#17)
No changes (prefer 0.4.2 instead).
Change signature of ScopeAttr::apply
: replace args: TokenStream, attr_span: Span
with attr: Attribute
(#15).
Support no_std
. Support matching standard traits via paths from core
/alloc
as well as via paths from std
.
Documentation improvements only.
The library now supports extensibility. Most code has been moved to a new crate,
impl-tools-lib
. Users may replace impl-tools
with their own front-end
proc-macro crate, adding/removing the traits supported by #[autoimpl]
and the
attributes supported by impl_scope!
.
- Extensibility for
impl_scope!
- Extensibility for
#[autoimpl]
- Permit path arguments in
#[autoimpl]
- Bug-fix for
#[autoimpl(Debug)]
on tuple and unit structs - Lots of internal code revision
Add impl_scope!
function-like macro (derived from kas_macros::widget!
) and
#[impl_default]
attribute macro.
New release, including the #[autoimpl]
attribute macro (extracted from
kas-macros
crate).