Rust 用に書いた木構造ライブラリ dendron の内部構造の解説 木構造、ほしくない? この記事は Rust Advent Calendar 2022 その2 の8日目の記事です。 既存実装 木構造といったって、用途次第でいろいろ楽する方法があるわけです。 まずはよく知られた方法の実装について簡単に見てみましょう。 一気に作ってそれ以降は読み出すだけなら Box を使うのが楽です。 /// ノード。 #[derive(Default, Debug, Clone)] struct Node<T> { /// ノードに紐付いたデータ。 data: T, /// 子ノード。 children: Vec<Box<Node<T>>>, } ただし、このような持ち方だとノードの参照を保持しながら別の箇所を編集するといった用法はほぼ無理です。 参照を持ちながら編集もしたいなら、 Box の代わりに