Rustでの標準的なエラー処理は、モジュールまたはクレート全体のエラーを1つのenumで定義し、不要なvariantも返却対象に含まれる.
この手法では利用可能なエラーとそうでないエラーの判別にドキュメント依存が生じ、可読性と安全性が低下する.
terrorsクレートはエラーを独立したstructとして表現し、enum依存を減らす代替アプローチを示している.
error_setクレートはマクロでエラーセットとenum、変換実装を簡潔に定義し、部分集合としての`?`演算子利用を可能にする.
error_setマクロにより、関数のエラーセット同士をunionやsubsetで組み合わせる記述がシンプルになる.
他にもSmartErrなど、異なる方法でエラー処理パラダイムを探求するライブラリが存在する.
関数ボディ解析でenumを自動生成する属性マクロの例が理想的だが、現時点では見つかっていない.
Get notified when new stories are published for "🇯🇵 Hacker News 日本語"