extend
Create extensions for types you don't own with extension traits but without the boilerplate.
1.2.0
9.4M downloads/mo
#3223 most downloaded on crates.io
davidpdrsn/extend
What this package is like to depend on
Last release 3 years ago
no release in 18 months
Ships unpredictably
gaps range from 2 weeks to 1.5 years
Nearly every release is documented
notes for 14 of 15 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
15 releases · first in 2019
0 releases in the last 12 months
see the full history below
Release timeline
15 releases · Oct 2019 to Mar 2023
2020
2021
2022
2023
2024
2025
2026
Releases
latest 15-
1.2.018 Mar 2023 -
1.1.318 Mar 2023 -
1.1.202 Sep 2021 -
1.1.112 Jul 2021Release notes
Open source →- Fix name collision for extensions on
&Tand&mut T. The generated traits now get different names.
- Fix name collision for extensions on
-
1.1.012 Jun 2021Release notes
Open source →- Support setting visibility of the generated trait directly on the
implblock. For example:pub impl i32 { ... }. - Add
#[ext_sized]for addingSizedsupertrait.
- Support setting visibility of the generated trait directly on the
-
1.0.114 Feb 2021 -
1.0.030 Jan 2021Release notes
Open source →- Support extensions on bare functions types (things like
fn(i32) -> bool). - Support extensions on trait objects (things like
dyn Send + Sync).
- Support extensions on bare functions types (things like
-
0.3.031 Aug 2020Release notes
Open source →- Add async-trait compatibility.
Breaking changes
- Other attributes put on the
implwould previously only be included on the generated trait. They're now included on both the trait and the implementation.
-
0.2.129 Aug 2020Release notes
Open source →- Fix documentation link in Cargo.toml.
- Use more correct repository URL in Cargo.toml.
-
0.2.029 Aug 2020Release notes
Open source →- 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.
Breaking changes
- Generated traits are no longer sealed and the
sealedargument previously supported by#[ext]has been removed. Making the traits sealed lead to lots of complexity that we didn't think brought much value.
- Handle unnamed extensions on the same generic type with different type parameters. For example
-
0.1.222 May 2020Nothing published for this version
-
0.1.122 Feb 2020 -
0.1.026 Nov 2019Release notes
Open source →- Support adding extensions to the "never type".
Breaking changes
- Simplify names of traits generates for complex types.
-
0.0.230 Oct 2019 -
0.0.130 Oct 2019