13 KiB
Changelog
All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning.
Unreleased
0.4.9 - 2020-04-14
-
Fixed lifetime inference error when associated types are used in fields.
-
#[project]
attribute can now be used forif let
expressions.
0.4.8 - 2020-01-27
0.4.7 - 2020-01-20
0.4.6 - 2019-11-20
0.4.5 - 2019-10-21
0.4.4 - 2019-10-17
0.4.3 - 2019-10-15 - YANKED
-
#[pin_project]
can now interoperate with#[cfg()]
on tuple structs and tuple variants. -
Fixed support for DSTs(Dynamically Sized Types) on
#[pin_project(UnsafeUnpin)]
0.4.2 - 2019-09-29 - YANKED
0.4.1 - 2019-09-26 - YANKED
0.4.0 - 2019-09-25 - YANKED
-
Pin projection has become a safe operation. In the absence of other unsafe code that you write, it is impossible to cause undefined behavior.
-
#[unsafe_project]
attribute has been replaced with#[pin_project]
attribute. (#18, #33) -
The
Unpin
argument has been removed - anUnpin
impl is now generated by default. -
Drop impls must be specified with
#[pinned_drop]
instead of via a normalDrop
impl. (#18, #33, #86) -
#[pin_project]
can now be used for public type with private field types. -
Removed "project_attr" feature and always enable
#[project]
attribute.
Changes since the 0.4.0-beta.1 release:
0.4.0-beta.1 - 2019-09-21
-
Changed the argument type of project method back to
self: Pin<&mut Self>
. -
Removed "project_attr" feature and always enable
#[project]
attribute.
0.4.0-alpha.11 - 2019-09-11
-
Changed #[pinned_drop] to trait implementation.
#[pinned_drop] impl<T> PinnedDrop for Foo<'_, T> { fn drop(mut self: Pin<&mut Self>) { **self.project().was_dropped = true; } }
-
Added some examples and generated code.
-
Improve error messages.
0.4.0-alpha.10 - 2019-09-07
-
Improved documentation.
0.4.0-alpha.9 - 2019-09-05
-
Added 'project_into' method to #[pin_project] types. This can be useful when returning a pin projection from a method.
fn get_pin_mut(self: Pin<&mut Self>) -> Pin<&mut T> { self.project_into().pinned }
-
Prevented UnpinStruct from appearing in the document by default. See taiki-e/pin-project#71 for more details.
0.4.0-alpha.8 - 2019-09-03
-
Improved document of generated code.. Also added an option to control the document of generated code. See taiki-e/pin-project#62 for more details.
0.4.0-alpha.7 - 2019-09-02
0.4.0-alpha.6 - 2019-09-01
0.4.0-alpha.5 - 2019-08-24
0.4.0-alpha.4 - 2019-08-23
- Avoided clippy::drop_bounds lint in generated code.
0.4.0-alpha.3 - 2019-08-23
-
#[pin_project]
attribute can now detect that the type used does not have its own drop implementation without actually implementing drop. This removed some restrictions.
0.4.0-alpha.2 - 2019-08-13
- Updated
proc-macro2
,syn
, andquote
to 1.0.
0.4.0-alpha.1 - 2019-08-11
-
Pin projection has become a safe operation.
-
#[unsafe_project]
has been replaced with#[pin_project]
. -
The
Unpin
argument has been removed - anUnpin
impl is now generated by default. -
Drop impls must be specified with
#[pinned_drop]
instead of via a normalDrop
impl. -
Unpin
impls must be specified with an impl ofUnsafeUnpin
, instead of implementing the normalUnpin
trait. -
Made
#[project]
attribute disabled by default.
See also tracking issue for 0.4 release.
0.3.5 - 2019-08-14
- Updated
proc-macro2
,syn
, andquote
to 1.0.
0.3.4 - 2019-07-21
- Improved error messages.
0.3.3 - 2019-07-15 - YANKED
- Improved error messages.
0.3.2 - 2019-03-30
- Avoided suffixes on tuple index.
0.3.1 - 2019-03-02
-
Improved documentation.
-
Updated minimum
syn
version to 0.15.22.
0.3.0 - 2019-02-20
-
Removed
unsafe_fields
attribute. -
Removed
unsafe_variants
attribute.
0.2.2 - 2019-02-20
- Fixed a bug that generates incorrect code for the some structures with trait bounds on type generics.
0.2.1 - 2019-02-20
- Fixed a bug that generates incorrect code for the structures with where clause and associated type fields.
0.2.0 - 2019-02-11
-
Made
unsafe_fields
optional. -
Improved documentation.
0.1.8 - 2019-02-02
-
Added the feature to create projected enums to
unsafe_project
. -
Added
project
attribute to support pattern matching.
0.1.7 - 2019-01-19
- Fixed documentation.
0.1.6 - 2019-01-19
-
unsafe_fields
can now opt-out. -
Added
unsafe_variants
attribute. This attribute is available if pin-project is built with the "unsafe_variants" feature.
0.1.5 - 2019-01-17
- Added support for tuple struct to
unsafe_project
.
0.1.4 - 2019-01-12
- Added options for automatically implementing
Unpin
to bothunsafe_project
andunsafe_fields
.
0.1.3 - 2019-01-11
-
Fixed dependencies.
-
Added
unsafe_fields
attribute.
0.1.2 - 2019-01-09
- Improved documentation.
0.1.1 - 2019-01-08
- Renamed from
unsafe_pin_project
tounsafe_project
.
0.1.0 - 2019-01-08 - YANKED
Initial release