Unpin トレイト
Unpin型は、Pinでラップされている場合でも、自由に移動できます- ほとんどの型は
Unpinを実装します。これは “auto trait” だからです auto traitの挙動は変更できます:!Unpin型は決して移動してはなりませんPhantomPinnedフィールドを含む型は、デフォルトではUnpinを実装しません
型が Unpin を実装している場合、Pin<Ptr> のピン留めの挙動は 発動しないことを説明してください。値は自由に移動できます。
ほとんどすべての型が Unpin を実装していることを説明してください。これは コンパイラによって自動的に実装されます。
Unpin を実装する型は、次のように言っていることになります: 「自己参照を持たないことを約束するので、 私を移動しても常に安全です。」
問い: どのような型が !Unpin になり得るでしょうか?
- コンパイラ生成の futures
PhantomPinnedフィールドを含む型- C++ オブジェクトをラップする一部の型
!Unpin 型は、いったんピン留めされると移動できません