Rustでのエラーハンドリング(thiserrorとanyhow)
thiserrorでライブラリ用のエラー型を定義し、anyhowでアプリケーション層のエラーを集約してコンテキストを追加します。二つの組み合わせ方を紹介します。
thiserrorでライブラリ用のエラー型を定義し、anyhowでアプリケーション層のエラーを集約してコンテキストを追加します。二つの組み合わせ方を紹介します。
Arc<Mutex<T>>でスレッド間でデータを共有し、mpscチャネルでメッセージを送受信し、デッドロック、ポイズニング、その他の一般的なエラーを回避する方法。
Axum 0.8でCRUD REST APIを構築します。routing、extractor、shared state、IntoResponseを使ったエラーハンドリング、ネットワークポートを開かないhandlerのテストを扱います。
Rust での Box、Rc、Arc の使い分け: ヒープ割り当て、単一スレッド内での所有権共有と複数スレッド間での共有、Weak、RefCell、Mutex の組み合わせ
TokioによるRustの非同期プログラミング解説。async/await、spawn task、join!、select!、timeout、channel、spawn_blocking、非同期コードのテストまでを網羅。
Cargoを使用してRustプロジェクトを作成し、依存関係を正しく追加し、テストを書き、複数のcrateを1つのワークスペースにまとめるガイド。
Rust のクロージャ、Fn/FnMut/FnOnce の 3 つのトレイト、map/filter/collect などのイテレータアダプタの使い方、カスタムイテレータの実装を学びます。
データを持つenumの定義方法、match、if let、let elseを使った各ケースの安全な処理、およびRustでenumを扱う際の一般的なエラーについて学べます。
Rustでのtraitの定義と実装、trait bound、impl Trait、dyn Trait、orphan ruleのような一般的なエラーを回避する方法を学びます。
Rust の Option<T> と Result<T, E> を学ぶ: 値が存在しない状況の表現、起こりうるエラー、そして例外の代わりに ? 演算子を使ったエラー伝播。
Order、Customerなどの例を通じて、borrowing、borrow checker、lifetime annotationを解説。よくあるエラーも取り上げます。
Rustの所有権メカニズムについて学びます。このメカニズムにより、ガベージコレクタなしでコンパイル時に安全にメモリを管理できます。