暗黙のライフタイム境界について。

サンプル

型がライフタイム境界なしに成立しない場合、自動的にライフタイム境界が導入される。

例えば、&'a T からは T: 'a が導入される。

仕様

rustdoc

、rustdoc は暗黙のライフタイムを文書化してくれない。理想的には、コード上は暗黙でも文書上は明示して欲しいのだが…。仕方がないので筆者はなるべく暗黙のライフタイムを使わないようにしている。

なお、既定では非公開フィールドも文書化されない。そのため、非公開フィールド由来の暗黙のライフタイムは完全にステルス化されてしまう。

ちなみに、この問題は本質的な欠点ではあるものの、実用的な影響は大きくない。なぜなら、フィールドとそれに紐づくライフタイムは、通常ならインスタンスの生成メソッドにより提供される。そのため、暗黙的なライフタイムもその時点では確実に明示的になる (結果、型の段階で気づけるか、生成メソッドの段階まで気づかないか、程度の差となる)。