#Rust
4 件
Rust 1.96 の Range 型:Copy を Iterator から取り戻す
Range はそれ自身が Iterator を実装しているので Copy になれなかった。Rust 1.96 は IntoIterator だけを実装する新しい Range 型群を安定化し、Copy にした。この区別がなぜ重要か、そして慣れた構文がいつ変わるか。
Rust の Result:コンテキストは失敗した行に付ける
`?` はエラーをそのまま上へ投げ、どの段階で失敗したかを伝えません。中核は照合できる構造化エラー、アプリ層は Context で「何をしていたか」と入力を添える。
crate を workspace に分けるべきとき
分割の引き金はビルド時間と依存の境界で、ディレクトリの見た目ではありません。3 つの条件が揃ったときに分け、揃わなければ 1 回のビルドを複数パッケージの管理と引き換えにするだけです。
構造化ログは println を tracing::info に置き換えることではない
文字列を連結したログは人間しか読めません。フィールドがあって初めて検索と集計ができます。フィールド、span、レベル、そして整形しない判断の 4 つが本題です。
