pin-project-lite
A lightweight version of pin-project written with declarative macros.
0.2.17
949M downloads/mo
#52 most downloaded on crates.io
taiki-e/pin-project-lite
What this package is like to depend on
Last release 5 months ago
27 Feb 2026
Release timing varies
gaps range from 3 weeks to 1.2 years
Nearly every release is documented
notes for 14 of 14 stable releases
17 versions withdrawn
withdrawn after publishing
7 years old
31 releases · first in 2019
1 release in the last 12 months
see the full history below
Release timeline
31 releases · Oct 2019 to Feb 2026Releases
latest 31-
0.2.1727 Feb 2026 -
0.2.1606 Jan 2025Release notes
Open source →- Suppress
clippy::absolute_paths,clippy::min_ident_chars, andclippy::single_char_lifetime_nameslints in generated code.
Release notes
Open source →- Suppress
clippy::absolute_paths,clippy::min_ident_chars, andclippy::single_char_lifetime_nameslints in generated code.
- Suppress
-
0.2.1524 Oct 2024Release notes
Open source →- Work around an issue on negative_impls that allows unsound overlapping
Unpinimplementations. (#84)
Release notes
Open source →- Work around an issue on negative_impls that allows unsound overlapping
Unpinimplementations. (#84)
- Work around an issue on negative_impls that allows unsound overlapping
-
0.2.1429 Mar 2024 -
0.2.1325 Aug 2023 -
0.2.1209 Aug 2023Release notes
Open source →- Work around an issue where the projected types/methods appear in the documentation as if they were part of the public API if the visibility is not correctly parsed due to the rustc bug. See #77 for details.
Release notes
Open source →- Work around an issue where the projected types/methods appear in the documentation as if they were part of the public API if the visibility is not correctly parsed due to the rustc bug. See #77 for details.
-
0.2.1106 Aug 2023Release notes
Open source →- Add support for
#[project(!Unpin)]. This is equivalent to pin-project's !Unpin option. (#76, thanks @matheus-consoli)
- Add support for
-
0.2.1002 Jul 2023 -
0.2.926 Apr 2022 -
0.2.831 Dec 2021Release notes
Open source →- Fix handling of trailing commas in
PinnedDropimpl. (#64, thanks @Michael-J-Ward)
Release notes
Open source →- Fix handling of trailing commas in
PinnedDropimpl. (#64, thanks @Michael-J-Ward)
- Fix handling of trailing commas in
-
0.2.726 Jun 2021 -
0.2.604 Mar 2021 -
0.2.502 Mar 2021 -
0.2.411 Jan 2021 withdrawnRelease notes
Open source → -
0.2.309 Jan 2021 withdrawn -
0.2.209 Jan 2021 withdrawn -
0.2.105 Jan 2021 withdrawnRelease notes
Open source →Note: This release has been yanked. See #55 for details.
- Exclude unneeded files from crates.io.
-
0.2.013 Nov 2020 withdrawnRelease notes
Open source →Note: This release has been yanked. See #55 for details.
-
pin_project!macro now supports enums.To use
pin_project!on enums, you need to name the projection type returned from the method.use pin_project_lite::pin_project; use std::pin::Pin; pin_project! { #[project = EnumProj] enum Enum<T, U> { Variant { #[pin] pinned: T, unpinned: U }, } } impl<T, U> Enum<T, U> { fn method(self: Pin<&mut Self>) { match self.project() { EnumProj::Variant { pinned, unpinned } => { let _: Pin<&mut T> = pinned; let _: &mut U = unpinned; } } } } -
Support naming the projection types.
By passing an attribute with the same name as the method, you can name the projection type returned from the method:
use pin_project_lite::pin_project; use std::pin::Pin; pin_project! { #[project = StructProj] struct Struct<T> { #[pin] field: T, } } fn func<T>(x: Pin<&mut Struct<T>>) { let StructProj { field } = x.project(); let _: Pin<&mut T> = field; }
-
-
0.1.1202 Mar 2021 -
0.1.1120 Oct 2020 withdrawnRelease notes
Open source →Note: This release has been yanked. See #55 for details.
-
Suppress
clippy::redundant_pub_cratelint in generated code. -
Documentation improvements.
-
-
0.1.1001 Oct 2020 withdrawnRelease notes
Open source →Note: This release has been yanked. See #55 for details.
- Suppress
drop_boundslint, which will be added to rustc in the future. See taiki-e/pin-project#272 for more details.
- Suppress
-
0.1.929 Sep 2020 withdrawn -
0.1.826 Sep 2020 withdrawnRelease notes
Open source →Note: This release has been yanked. See #55 for details.
-
Fix compatibility of generated code with
forbid(future_incompatible).Note: This does not guarantee compatibility with
forbid(future_incompatible)in the future. If rustc adds a new lint, we may not be able to keep this.
-
-
0.1.704 Jun 2020 withdrawnRelease notes
Open source →Note: This release has been yanked. See #55 for details.
-
Fix lifetime inference error when an associated type is used in fields.
-
Suppress
clippy::used_underscore_bindinglint in generated code. -
Documentation improvements.
-
0.1.631 May 2020 withdrawnRelease notes
Open source →Note: This release has been yanked. See #55 for details.
-
Documentation improvements.
-
0.1.507 May 2020 withdrawn -
0.1.420 Jan 2020 withdrawn -
0.1.320 Jan 2020 withdrawn -
0.1.205 Jan 2020 withdrawnRelease notes
Open source →Note: This release has been yanked. See #55 for details.
- Support recognizing default generic parameters. (#6, thanks @kennytm)
-
0.1.115 Nov 2019 withdrawn -
0.1.022 Oct 2019 withdrawnRelease notes
Open source →Note: This release has been yanked. See #55 for details.
Initial release