てけもぐ Tech 忘備録

rust の自己参照にかんしてメモ

対象

rust 初学者

内容

rust で自己参照を伴う構造体を扱おうとしてハマったので、役に立ったページを書いておく。

Learn Rust With Entirely Too Many Linked Lists

ある程度 rust を学んだ後でリンクリストを作ろうとしてハマり、このページが役に立った。Rc や RefCell を使って書くと、このページの Bad Safe Deque の Final Code の様になると思う。nightmare to implement と書いてあるね。これ以降工夫するとなると unsafe を使って組み立てていくことになる。

後は、Self Referential Structs in Rust (Part 1) とか。読んでいくと、自己参照を含む様なデータ構造を rust で組む場合は、unsafe にするか、特定のトレイトを使うしかない。つまり、自分で unsafe と生ポインタ等で頑張るか、既に unsafe を含む機構で機能を実現したトレイトを使うか。

これらを見ていると、コンテナの様なものの自作はちょっと大変そうではある。