All user visible changes to this project will be documented in this file. This project adheres to Semantic Versioning, as described for Rust libraries in RFC #1105
- None.
- None.
- Support destructuring function arguments
- Update to syn 2.0
- Fix using
pub impl
with#[async_trait]
.
- Fix name collision for extensions on
&T
and&mut T
. The generated traits now get different names.
- Support setting visibility of the generated trait directly on the
impl
block. For example:pub impl i32 { ... }
. - Add
#[ext_sized]
for addingSized
supertrait.
- Update maintenance status.
- Support extensions on bare functions types (things like
fn(i32) -> bool
). - Support extensions on trait objects (things like
dyn Send + Sync
).
- Add async-trait compatibility.
- Other attributes put on the
impl
would previously only be included on the generated trait. They're now included on both the trait and the implementation.
- Fix documentation link in Cargo.toml.
- Use more correct repository URL in Cargo.toml.
- Handle unnamed extensions on the same generic type with different type parameters. For example
Option<i32>
andOption<String>
. Previously we would generate the same name of both hidden traits which wouldn't compile. - Support associated constants in extension impls.
- Generated traits are no longer sealed and the
sealed
argument previously supported by#[ext]
has been removed. Making the traits sealed lead to lots of complexity that we didn't think brought much value.
- Add support for specifying supertraits of the generated trait #4.
- Support adding extensions to the "never type".
- Simplify names of traits generates for complex types.
- Move "trybuild" to dev-dependency.
Initial release.