Rust について気付いた事をメモ。
エラーと警告
[dead_code] 未使用のアイテム
[error] HRTB の機能制限
[error] HRTB の機能制限と GAT
[error] ライフタイムの不足
[error] ライフタイムの不足とクロージャ
[error] 汎用的でない呼出可能型
[E0119] トレイト実装の衝突
[E0207] 実装を構成しないジェネリクスパラメタ
[E0275] トレイト確認の無限再帰
[E0210] 孤児ルールに違反した型パラメタ
[E0307] self に使えない型
[E0308] 型の不一致
[E0367] Drop 実装の特殊化
[E0379] トレイトでの const 関数
[E0499] 可変参照の重複
[E0499] NLL の偽陽性と GAT
[E0502] 不変参照と可変参照の同時使用
[E0503] 可変借用中の使用
[E0515] 戻り値にできない参照
[E0521] 参照引数の関数外への持ち出し
[E0562] impl 抽象化の未対応箇所での使用
[E0597] 参照中の参照先の破棄
[E0597] HRTB の機能制限
[E0597] HRTB の機能制限と GAT
[E0599] 無効なメソッドの呼出
[E0658] const 文脈での for ループ
[E0716] 参照中の中間値の破棄
ライフタイムまわりのエラー
借用チェッカーの制限
標準ライブラリ
bool から Option への変換
From と Into
Iterator::fuse と FusedIterator
Option とイテレータ
RangeBounds とイテレータ
セットやマップからの検索と Borrow トレイト
マップの entry メソッド
意図的なパニック
内部可変性のある型
内部可変性と get_mut, from_mut 関数
言語仕様
? 演算子の使いどころ
? 演算子とエラー型変換
Deref 型強制
HRTB (Higher Ranked Trait Bound)
Sized トレイト
ZST (Zero Sized Type)
dyn 型の実装
main 関数の戻り値
must_use 注釈
type エイリアス
タプル形式での初期化
メソッド呼出と型変換
メソッド名の衝突と解決
演算子オーバーロードと参照型
空のタプル (ユニット)
関連型
組込型の特権/self への型指定
組込型の特権/アンサイズ
孤児ルール
再借用
参照型へのトレイト実装
条件付きコンパイル
添字アクセス
慣習
スマートポインタまわりの慣習
HowTo
Extension Trait パターン
Lending Iterator パターン
Newtype パターン
Newtype パターンと参照型の変換
Sealed Trait パターン
Singleton パターン
Voldemort パターン
cargo test での対象の指定
cargo fmt と rustfmt の調整
dyn 型のアップキャスト
rustdoc での README.md の流用
rustdoc でのフィーチャーの表示
no_std 環境と std 環境の両対応
バージョンの切替
マクロによる識別子の導入
マクロの展開結果の確認
ワークスペースの構築
自動テストでのコンパイルエラーの確認
配列の初期化