Pin
ほとんどのデータ構造はメモリ上の位置を変更してもmemcpyで別の場所にコピーして移せばよい
しかし、自己参照構造体のように自身の”アドレス"を持つ構造体はそうはいかない なので、メモリ上の位置を移動してはいけない、という契約を示す何かが必要となった
それを外して「移動不可能」にマークしたい場合のみ !Unpin という形にする。
移動不可能な値へのポインターをラップした形として Pin<Ptr> がある
pin の詳細には立ち入りませんが、ここで押さえておくべきことは、参照に対して .await をするためには、参照される値が pin されているか、Unpin を実装している必要がある、ということです。 参考資料: