| # Examples and generated code of each feature of pin-project |
| |
| ### Basic usage of `#[pin_project]` on structs |
| |
| - [example](struct-default.rs) |
| - [generated code](struct-default-expanded.rs) |
| |
| ### Basic usage of `#[pin_project]` on enums |
| |
| - [example](enum-default.rs) |
| - [generated code](enum-default-expanded.rs) |
| |
| ### Manual implementation of `Unpin` by `UnsafeUnpin` |
| |
| - [example](unsafe_unpin.rs) |
| - [generated code](unsafe_unpin-expanded.rs) |
| - [`UnsafeUnpin` documentation](https://docs.rs/pin-project/1/pin_project/trait.UnsafeUnpin.html) |
| |
| ### Manual implementation of `Drop` by `#[pinned_drop]` |
| |
| - [example](pinned_drop.rs) |
| - [generated code](pinned_drop-expanded.rs) |
| - [`#[pinned_drop]` documentation](https://docs.rs/pin-project/1/pin_project/attr.pinned_drop.html) |
| |
| ### `project_replace()` method |
| |
| - [example](project_replace.rs) |
| - [generated code](project_replace-expanded.rs) |
| - [`project_replace()` documentation](https://docs.rs/pin-project/1/pin_project/attr.pin_project.html#project_replace) |
| |
| ### Ensure `!Unpin` by `#[pin_project(!Unpin)]` |
| |
| - [example](not_unpin.rs) |
| - [generated code](not_unpin-expanded.rs) |
| - [`!Unpin` documentation](https://docs.rs/pin-project/1/pin_project/attr.pin_project.html#unpin) |
| |
| Note: These generated code examples are the little simplified version of the |
| actual generated code. See [expansion tests](../tests/expand/README.md) if you |
| want to see the exact version of the actual generated code. |