Signals と Sig
Signals はページの状態を持つ構造体が実装するトレイトで、Sig<S, T> はそのフィールドの 1 つを指す型付きの参照です。
型
| 項目 | 概要 |
|---|---|
Signals | フィールドがシグナルである構造体 |
Sig | シグナル構造体 S の中にある、型が T のシグナルを指す型付きの参照 |
Item | each や Sig::count のようなリストの述語の中で、いま扱っているリストの項目 |
Root | Sig のパスがページのシグナル構造体から始まることを表す型 |
Local | Sig のパスが each やリストの述語でいま扱っている項目から始まることを表す型 |
Part | 自分のシグナルに対して一度だけ書き、どのページにも埋め込めるページの部品 |
Part::render | 埋め込まれたフィールドの下にパスを書いて、部品を描画します。 |
MAX_DEPTH | Sig が指せるフィールドの連なりの最大の深さ |
Sig
Sig は式でもあるので、Expr のメソッドも使えます。
| 項目 | 概要 |
|---|---|
at | このシグナルが持つ構造体のフィールド field |
set | ブラウザでこのシグナルに value を代入する文 |
toggle | このフラグを反転する文 |
patch | サーバーが送ったときに、このシグナルを value にする差分 |
path | このシグナルの格納先を表す、ドットで区切ったフィールドのパス |
let_in_stmt | 文を実行した時点のこのシグナルの値で、body を実行する文 |
リスト
以下は値が Vec の Sig にあるメソッドです。
| 項目 | 概要 |
|---|---|
push | このリストに value を追加する文 |
append | このリストに items のすべての項目を追加する文 |
prepend | このリストの項目の前に items のすべての項目を加える文 |
patch_append | ブラウザが持つ項目の後ろに items を加える差分 |
patch_prepend | ブラウザが持つ項目の前に items を加える差分 |
patch_upsert | キーで項目を置き換え、新しいキーの項目を末尾に加える差分 |
patch_remove | キーが keys のどれかに一致する項目を取り除く差分 |
extend | 各項目を位置 i から作り、count 個の項目を追加する文 |
remove_at | index の位置に項目があれば、それを取り除く文 |
clear | このリストを空にする文 |
retain | keep が真になる項目だけを残す文 |
set_all | すべての項目で field を value にする文 |
update_where | when が真になる項目で field を value にする文 |
swap | a と b の位置に項目が両方あれば、それらを入れ替える文 |
sort_by | キーが等しい項目の順序を保ったまま、項目を key の昇順に並べる文 |
sort_by_desc | キーが等しい項目の順序を保ったまま、項目を key の降順に並べる文 |
count | matches が真になる項目の数 |
map | 各項目について value が返す値を、順に並べたリスト |
sum_of | 各項目の value の合計。空のリストでは 0 |
max_of | 各項目の value のうち最大のもの。空のリストでは None |
min_of | 各項目の value のうち最小のもの。空のリストでは None |