diff options
author | Haibo Huang <hhb@google.com> | 2020-07-10 20:23:30 -0700 |
---|---|---|
committer | Chih-Hung Hsieh <chh@google.com> | 2020-07-13 22:26:50 -0700 |
commit | d58366dc4a1a1ec807bb02dfc7928051799130ac (patch) | |
tree | 99470e8e8e4787e90b156f71bafac98438d6c39a /README.md | |
parent | 09ba014483c2506939704e0b993a728958553e25 (diff) | |
download | pin-project-d58366dc4a1a1ec807bb02dfc7928051799130ac.tar.gz |
Upgrade rust/crates/pin-project to 0.4.22android-r-beta-3android-r-beta-2
* Keep local change in src/lib.rs
Test: make
Change-Id: I63ca4a3f247df2028bcb6cb849823b296865f444
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 29 |
1 files changed, 17 insertions, 12 deletions
@@ -9,16 +9,12 @@ [crates-url]: https://crates.io/crates/pin-project [docs-badge]: https://docs.rs/pin-project/badge.svg [docs-url]: https://docs.rs/pin-project -[license-badge]: https://img.shields.io/crates/l/pin-project.svg +[license-badge]: https://img.shields.io/badge/license-Apache--2.0%20OR%20MIT-blue.svg [license]: #license [rustc-badge]: https://img.shields.io/badge/rustc-1.34+-lightgray.svg [rustc-url]: https://blog.rust-lang.org/2019/04/11/Rust-1.34.0.html -A crate for safe and ergonomic pin-projection. - -[Documentation][docs-url] - -[Examples](examples/README.md) +A crate for safe and ergonomic [pin-projection]. ## Usage @@ -33,7 +29,8 @@ The current pin-project requires Rust 1.34 or later. ## Examples -[`pin_project`] attribute creates a projection struct covering all the fields. +[`#[pin_project]`][`pin_project`] attribute creates projection types +covering all the fields of struct or enum. ```rust use pin_project::pin_project; @@ -47,7 +44,7 @@ struct Struct<T, U> { } impl<T, U> Struct<T, U> { - fn foo(self: Pin<&mut Self>) { + fn method(self: Pin<&mut Self>) { let this = self.project(); let _: Pin<&mut T> = this.pinned; // Pinned reference to the field let _: &mut U = this.unpinned; // Normal reference to the field @@ -55,13 +52,21 @@ impl<T, U> Struct<T, U> { } ``` -[Code like this will be generated](examples/struct-default-expanded.rs) - -See [API documentation][docs-url] for more details. +[*code like this will be generated*][struct-default-expanded] -Also, there are examples and generated code of each feature in [examples](examples/README.md) directory. +See [documentation][docs-url] for more details, and +see [examples] directory for more examples and generated code. [`pin_project`]: https://docs.rs/pin-project/0.4/pin_project/attr.pin_project.html +[examples]: examples/README.md +[pin-projection]: https://doc.rust-lang.org/nightly/std/pin/index.html#projections-and-structural-pinning +[struct-default-expanded]: examples/struct-default-expanded.rs + +## Related Projects + +* [pin-project-lite]: A lightweight version of pin-project written with declarative macros. + +[pin-project-lite]: https://github.com/taiki-e/pin-project-lite ## License |