<main><divclass="width-limiter"><navclass="sub"><formclass="search-form"><span></span><divid="sidebar-button"tabindex="-1"><ahref="../pin_project_lite/all.html"title="show sidebar"></a></div><inputclass="search-input"name="search"aria-label="Run search in the documentation"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"><divid="help-button"tabindex="-1"><ahref="../help.html"title="help">?</a></div><divid="settings-menu"tabindex="-1"><ahref="../settings.html"title="settings"><imgwidth="22"height="22"alt="Change settings"src="../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><sectionid="main-content"class="content"><divclass="main-heading"><h1>Crate <aclass="mod"href="#">pin_project_lite</a><buttonid="copy-path"title="Copy item path to clipboard"><imgsrc="../static.files/clipboard-7571035ce49a181d.svg"width="19"height="18"alt="Copy item path"></button></h1><spanclass="out-of-band"><aclass="src"href="../src/pin_project_lite/lib.rs.html#3-1729">source</a> · <buttonid="toggle-all-docs"title="collapse all docs">[<span>−</span>]</button></span></div><detailsclass="toggle top-doc"open><summaryclass="hideme"><span>Expand description</span></summary><divclass="docblock"><!-- tidy:crate-doc:start -->
<p><ahref="macro.pin_project.html"title="macro pin_project_lite::pin_project"><code>pin_project!</code></a> macro creates a projection type covering all the fields of
<spanclass="kw">let _</span>: Pin<<spanclass="kw-2">&mut </span>T> = this.pinned; <spanclass="comment">// Pinned reference to the field
</span><spanclass="kw">let _</span>: <spanclass="kw-2">&mut </span>U = this.unpinned; <spanclass="comment">// Normal reference to the field
</span>}
}</code></pre></div>
<p>To use <ahref="macro.pin_project.html"title="macro pin_project_lite::pin_project"><code>pin_project!</code></a> on enums, you need to name the projection type
<h3id="pin-project-vs-pin-project-lite"><aclass="doc-anchor"href="#pin-project-vs-pin-project-lite">§</a><ahref="https://github.com/taiki-e/pin-project">pin-project</a> vs pin-project-lite</h3>
<h4id="different-no-proc-macro-related-dependencies"><aclass="doc-anchor"href="#different-no-proc-macro-related-dependencies">§</a>Different: No proc-macro related dependencies</h4>
<h4id="different-no-useful-error-messages"><aclass="doc-anchor"href="#different-no-useful-error-messages">§</a>Different: No useful error messages</h4>
<h4id="different-no-support-for-custom-unpin-implementation"><aclass="doc-anchor"href="#different-no-support-for-custom-unpin-implementation">§</a>Different: No support for custom Unpin implementation</h4>
<p>pin-project supports this by <ahref="https://docs.rs/pin-project/1/pin_project/attr.pin_project.html#unsafeunpin"><code>UnsafeUnpin</code></a>. (<code>!Unpin</code> is supported by both <ahref="https://docs.rs/pin-project/1/pin_project/attr.pin_project.html#unpin">pin-project</a> and <ahref="https://docs.rs/pin-project-lite/0.2/pin_project_lite/macro.pin_project.html#unpin">pin-project-lite</a>.)</p>
<h4id="different-no-support-for-tuple-structs-and-tuple-variants"><aclass="doc-anchor"href="#different-no-support-for-tuple-structs-and-tuple-variants">§</a>Different: No support for tuple structs and tuple variants</h4>
<!-- tidy:crate-doc:end --></div></details><h2id="macros"class="section-header">Macros<ahref="#macros"class="anchor">§</a></h2><ulclass="item-table"><li><divclass="item-name"><aclass="macro"href="macro.pin_project.html"title="macro pin_project_lite::pin_project">pin_project</a></div><divclass="desc docblock-short">A macro that creates a projection type covering all the fields of struct.</div></li></ul></section></div></main></body></html>