You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 KiB

Changelog

All notable changes to this project will be documented in this file.

This project adheres to Semantic Versioning.

Unreleased

1.0.6 - 2021-03-25

1.0.5 - 2021-02-03

1.0.4 - 2021-01-09

1.0.3 - 2021-01-05

  • Exclude unneeded files from crates.io.

1.0.2 - 2020-11-18

1.0.1 - 2020-10-15

1.0.0 - 2020-10-13

Changes since the 1.0.0-alpha.1 release:

1.0.0-alpha.1 - 2020-09-22

See also tracking issue for 1.0 release.

0.4.27 - 2020-10-11

  • Update minimal version of syn to 1.0.44

0.4.26 - 2020-10-04

0.4.25 - 2020-10-01

0.4.24 - 2020-09-26

0.4.23 - 2020-07-27

0.4.22 - 2020-06-14

  • Documentation improvements.

0.4.21 - 2020-06-13

0.4.20 - 2020-06-07

0.4.19 - 2020-06-04

0.4.18 - 2020-06-04

0.4.17 - 2020-05-18

  • Support naming the projection types.

    By passing an argument with the same name as the method to the attribute, you can name the projection type returned from the method:

    #[pin_project(project = EnumProj)]
    enum Enum<T> {
        Variant(#[pin] T),
    }
    
    fn func<T>(x: Pin<&mut Enum<T>>) {
        match x.project() {
            EnumProj::Variant(y) => {
                let _: Pin<&mut T> = y;
            }
        }
    }
    

0.4.16 - 2020-05-11

0.4.15 - 2020-05-10

0.4.14 - 2020-05-09

0.4.13 - 2020-05-07

0.4.12 - 2020-05-07

0.4.11 - 2020-05-07

Note: This release has been yanked. See #206 for details.

0.4.10 - 2020-05-04

0.4.9 - 2020-04-14

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

Note: This release has been yanked. See #148 for details.

0.4.2 - 2019-09-29

Note: This release has been yanked. See #148 for details.

0.4.1 - 2019-09-26

Note: This release has been yanked. See #148 for details.

0.4.0 - 2019-09-25

Note: This release has been yanked. See #148 for details.

Changes since the 0.4.0-beta.1 release:

0.4.0-beta.1 - 2019-09-21

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.

  • Diagnostic improvements.

0.4.0-alpha.10 - 2019-09-07

0.4.0-alpha.9 - 2019-09-05

0.4.0-alpha.8 - 2019-09-03

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

  • Suppress clippy::drop_bounds lint in generated code.

0.4.0-alpha.3 - 2019-08-23

0.4.0-alpha.2 - 2019-08-13

  • Updated proc-macro2, syn, and quote 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 - an Unpin impl is now generated by default.

  • Drop impls must be specified with #[pinned_drop] instead of via a normal Drop impl.

  • Unpin impls must be specified with an impl of UnsafeUnpin, instead of implementing the normal Unpin 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, and quote to 1.0.

0.3.4 - 2019-07-21

  • Diagnostic improvements.

0.3.3 - 2019-07-15

Note: This release has been yanked. See #16 for details.

  • Diagnostic improvements.

0.3.2 - 2019-03-30

  • Avoided suffixes on tuple index.

0.3.1 - 2019-03-02

  • Documentation improvements.

  • 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.

  • Documentation improvements.

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 both unsafe_project and unsafe_fields.

0.1.3 - 2019-01-11

  • Fixed dependencies.

  • Added unsafe_fields attribute.

0.1.2 - 2019-01-09

  • Documentation improvements.

0.1.1 - 2019-01-08

  • Renamed from unsafe_pin_project to unsafe_project.

0.1.0 - 2019-01-08

Note: This release has been yanked.

Initial release