Skip to main content

pick_weight

Function pick_weight 

Source
pub fn pick_weight(want: &[u16], available: &[(u16, bool)]) -> Option<u16>
Expand description

登録済みウェイトの中から、描画に使う 1 つを選ぶ。

  • want: 希望順のウェイト(太字なら [900, 700]、通常なら [400])。
  • available: この family で登録済みの (ウェイト, その文字列を全部描けるか)。
  1. 希望ウェイトのうち、登録済みで文字列を描けるものを希望順に選ぶ。
  2. 無ければ、文字列を描ける登録済みウェイトのうち先頭の希望に最も近いもの (CSS Fonts の「最も近いウェイト」照合の簡略版。同距離なら重い方)。
  3. どれも描けなければ None(呼び出し側は既定の経路へ落とす)。

【2026-09-26】従来は 1 が外れると「family 名だけのキー=最初に届いた書体」で 描いていた。Font Awesome 7 Free は 400(regular)と 900(solid)が同名で、 先に届く 400 にはマイクロチップ等の solid 専用アイコンが無い。 ::before が太字と見なされないとウェイト 400 で引かれ、字形の無い書体で 描いてアイコンが消えていた(www.sugi-lab.net の実画面で全アイコン欠落)。

計算量: O(W)(W は登録ウェイト数。高々数個)。