Chapter 12

ライブラリとしての API - 1

toyboot 4e
toyboot 4e
2022.02.18に更新

System の返値 (SystemResult)

今までは返値なしの system しか書けませんでしたが、 SystemResult<()> を返す関数も使えるようにします:

/// Alias of [`anyhow::Result`]
pub type SystemResult<T = ()> = anyhow::Result<T>;

返値なしの system は、実行すると必ず Ok(()) を返します。

リファレンス実装: 6f724b6

複数の resource を一括操作

例によって trait ResourceSet を追加して、マクロでタプルに実装しました。

リファレンス実装: 3057bae

データ借用の間接層 (SystemParam)

Res<T> は対象のデータを直接公開しますが、 Res<T> をラッピングした型が欲しい時もあります:

  • read/write で API を分けたい
  • 複数のデータを束ねて扱いたい