1. Comprehensive Rust 🦀 へようこそ
  2. 講座の運営について
    1. 講座の構成
    2. キーボード ショートカット
    3. 翻訳
  3. Cargoの使用
    1. Rust エコシステム
    2. コードサンプル
    3. ローカル環境での実行
  4. Day 1: AM
  5. ようこそ
  6. Hello, World
    1. Rustとは?
    2. Rustのメリット
    3. プレイグラウンド
  7. 型と値
    1. Hello, World
    2. 変数
    3. 算術
    4. 型推論
    5. 演習: フィボナッチ
      1. 解答
  8. 制御フローの基本
    1. if 式
    2. ループ
      1. for
      2. loop
    3. break と continue
      1. Labels
    4. ブロックとスコープ
      1. スコープとシャドーイング
    5. 関数
    6. マクロ
    7. 演習: コラッツ数列
      1. 解答
  9. Day 1: PM
  10. ようこそ
  11. タプルと配列
    1. 配列
    2. タプル
    3. 配列のイテレート
    4. パターンとデストラクト
    5. 演習: ネストされた配列
      1. 解答
  12. 参照
    1. 共有参照
    2. 排他参照
    3. Slices
    4. 文字列
    5. 演習: ジオメトリ
      1. 解答
  13. ユーザー定義型
    1. 名前付き構造体
    2. タプル構造体
    3. 列挙型(enums)
    4. 定数
    5. 静的
    6. 型エイリアス
    7. 演習: エレベーターでのイベント
      1. 解答
  14. Day 2: AM
  15. ようこそ
  16. パターンマッチング
    1. Matching Values
    2. 構造体のデストラクト
    3. 列挙型のデストラクト
    4. Let制御フロー
    5. 演習: 式の評価
      1. 解答
  17. Methods and Traits
    1. メソッド
    2. トレイト(trait)
      1. トレイトの実装
      2. スーパートレイト
      3. 関連型
    3. 導出
    4. 演習: ジェネリックなロガー
      1. 解答
  18. Day 2: PM
  19. ようこそ
  20. ジェネリクス(generics)
    1. ジェネリック関数
    2. ジェネリックデータ型
    3. ジェネリックトレイト
    4. トレイト制約
    5. impl Trait
    6. dyn Trait
    7. 演習: ジェネリックな min
      1. 解答
  21. 標準ライブラリ内の型
    1. 標準ライブラリ
    2. ドキュメント
    3. Option
    4. Result
    5. String
    6. Vec
    7. HashMap
    8. 演習: カウンター
      1. 解答
  22. 標準ライブラリ内のトレイト
    1. 他の言語との比較
    2. 演算子
    3. From と Into
    4. キャスト
    5. Read と Write
    6. Default、構造体更新記法
    7. クロージャ
    8. 演習: ROT13暗号
      1. 解答
  23. Day 3: AM
  24. ようこそ
  25. メモリ管理
    1. プログラム メモリの見直し
    2. メモリ管理のアプローチ
    3. 所有権
    4. ムーブセマンティクス
    5. Clone
    6. Copy 型
    7. Drop
    8. 演習: ビルダー型
      1. 解答
  26. スマートポインタ
    1. Box<T>
    2. Rc
    3. 所有されたトレイトオブジェクト
    4. 演習: バイナリツリー
      1. 解答
  27. Day 3: PM
  28. ようこそ
  29. 借用
    1. 値の借用
    2. 借用チェック
    3. Borrow Errors
    4. 内部可変性
    5. 演習: 健康に関する統計
      1. 解答
  30. ライフタイム
    1. 関数とライフタイム
    2. ライフタイムの省略
    3. 構造体のライフタイム
    4. 演習: Protobufの解析
      1. 解答
  31. Day 4: AM
  32. ようこそ
  33. イテレータ
    1. Iterator
    2. IntoIterator
    3. FromIterator
    4. 演習: イテレータのメソッドチェーン
      1. 解答
  34. モジュール
    1. モジュール
    2. ファイルシステム階層
    3. 可視性
    4. use、super、self
    5. 演習: GUI ライブラリのモジュール
      1. 解答
  35. テスト
    1. テストモジュール
    2. 他のタイプのテスト
    3. コンパイラの Lints と Clippy
    4. 演習: Luhnアルゴリズム
      1. 解答
  36. Day 4: PM
  37. ようこそ
  38. エラー処理
    1. パニック(panic)
    2. Result
    3. Try演算子
    4. Try変換
    5. Errorトレイト
    6. thiserror
    7. anyhow
    8. 演習: Result を使用した書き換え
      1. 解答
  39. Unsafe Rust
    1. アンセーフ
    2. 生ポインタの参照外し
    3. 可変なstatic変数
    4. 共用体
    5. Unsafe関数の呼び出し
    6. Unsafeなトレイトの実装
    7. 演習: FFIラッパー
      1. 解答
  40. Android
  41. ようこそ
  42. セットアップ
  43. ビルドのルール
    1. バイナリ
    2. ライブラリ
  44. AIDL(Androidインターフェイス定義言語)
    1. 誕生日サービスのチュートリアル
      1. インターフェイス
      2. Service API
      3. サービス
      4. サーバ
      5. デプロイ
      6. クライアント
      7. APIの変更
      8. 実装の更新
    2. AIDL型
      1. Primitive Types
      2. 配列型
      3. オブジェクトの送信
      4. Parcelables
      5. Sending Files
  45. テスト
    1. GoogleTest
    2. モック
  46. ログ出力
  47. 相互運用性
    1. C
      1. BindgenによるCの呼び出し
      2. CからRust呼び出し
    2. C++
      1. ブリッジモジュール
      2. Rustブリッジ
      3. 生成された C++
      4. C++ ブリッジ
      5. 共有の型
      6. 共有の列挙型
      7. Rustのエラー処理
      8. C++のエラー処理
      9. その他の型
      10. Android 向けのビルド: C++
      11. Android 向けのビルド: Genrules
      12. Android 向けのビルド: Rust
    3. Java
  48. Chromium
  49. ようこそ
  50. セットアップ
  51. Chromium と Cargo のエコシステムの比較
  52. ポリシー
  53. ビルドのルール
    1. アンセーフなコード
    2. Chromium C++からRustのコードに依存させる
    3. Visual Studio Code
    4. 演習
  54. テスト
    1. rust_gtest_interop ライブラリ
    2. Rust テスト用の GN ルール
    3. chromium::import! マクロ
    4. 演習
  55. C++との相互運用性
    1. バインディングの例
    2. CXXの限界
    3. CXXにおけるエラー処理
      1. エラー処理: QRの例
      2. エラー処理: PNGの例
    4. Chromium で CXX を使用する
    5. 演習
  56. サードパーティのクレートを追加する
    1. Cargo.toml を構成する
    2. gnrt_config.toml を構成する
    3. クレートをダウンロードする
    4. gn ビルドルールを生成する
    5. 問題を解決する
      1. コードを生成するビルドスクリプト
      2. C++をビルドする、もしくは、任意のアクションを実行するビルドスクリプト
    6. クレートへの依存を設定する
    7. 審査と監査
    8. Chromium ソースコードにチェックインする
    9. クレートを最新の状態に保つ
    10. 演習
  57. まとめ - 演習
  58. 演習の解答
  59. ベアメタル:午前
  60. ようこそ
  61. no_std
    1. alloc
  62. マイクロコントローラ
    1. 生MMIO(メモリマップドI/O)
    2. PACs
    3. HALクレート
    4. ボードサポートクレート
    5. タイプステートパターン
    6. embedded-hal
    7. probe-rsとcargo-embed
      1. デバッグ
    8. 他のプロジェクト
  63. 練習問題
    1. コンパス
    2. 解答
  64. ベアメタル: PM
  65. アプリケーションプロセッサ
    1. Rust の準備
    2. インラインアセンブリ
    3. MMIO
    4. UARTドライバを書いてみよう
      1. 他のトレイト
    5. UARTドライバの改善
      1. ビットフラッグ
      2. 複数のレジスタ
      3. ドライバ
      4. 使用例
    6. ログ出力
      1. 使用例
    7. 例外
    8. 他のプロジェクト
  66. 便利クレート
    1. zerocopy
    2. aarch64-paging
    3. buddy_system_allocator
    4. tinyvec
    5. spin
  67. Android上のベアメタル
    1. vmbase
  68. 練習問題
    1. RTC(リアルタイムクロック)ドライバ
    2. 解答
  69. 並行性: AM
  70. ようこそ
  71. スレッド
    1. プレーンなスレッド
    2. スコープ付きスレッド
  72. チャネル
    1. 送信側(Senders)と受信側(Receivers)
    2. Unboundedチャネル
    3. Boundedチャネル
  73. SendとSync
    1. マーカートレイト
    2. Send
    3. Sync
  74. 状態共有
    1. Arc
    2. Mutex
  75. 練習問題
    1. 食事する哲学者
    2. マルチスレッド・リンクチェッカー
    3. 解答
  76. 並行性: PM
  77. ようこそ
  78. Asyncの基礎
    1. async/await
    2. Future
    3. ランタイム
      1. Tokio
    4. タスク
  79. チャネルと制御フロー
    1. Asyncチャネル
    2. Join
    3. Select
  80. 落とし穴
    1. エグゼキュータのブロッキング
    2. Pin
    3. Asyncトレイト
    4. キャンセル
  81. 練習問題
    1. 食事する哲学者
    2. ブロードキャスト・チャットアプリ
    3. 解答
  82. 最後に
  83. ありがとうございました!
  84. 用語集
  85. 参考資料
  86. クレジット