Skip to content

Builder Lite Pattern

Ratatuiでは、ほとんどのウィジェット (および他のオブジェクト) が[ビルダーライト]パターンを使用してフィールドを設定します。これにより、ウィジェットを変数に保存して変異させることなく、ウィジェットの表示方法をセットアップするメソッドを使用して、シングルショットでオブジェクトを作成できます。

ビルダーライトパターンは、各メソッドの self パラメーターを消費し、更新されたフィールドで値を返します。パラグラフ (およびブロックに自動的にラップされることをサポートする他のウィジェット) からのこの例:

#[must_use]
pub fn block(mut self, block: Block<'a>) -> Self {
self.block = Some(block);
self
}

あなたは次のように呼ぶかもしれません:

let paragraph = Paragraph::new("foobar").block(Block::bordered())

アプリのコンピレーションでエラーや警告が表示された後にこのページに到達した場合、オブジェクトに対してセッターメソッドを呼び出しているが、結果を保存または使用していない可能性があります。これは、ウィジェットの実際の表示には影響しず、通常は間違いです。

例えば。次のコード:

let text = Text::raw("wrong");
text.centered();

に置き換える必要があります:

let text = Text::raw("right").centered();

または、ウィジェットのセットアップを複数回再利用したい状況:

let text = Text::raw("right");
let centered_text = text.clone().centered();
let bold_text = text.bold();