CI / runtime smoke (macos arm64, probe) (push) Skipped
CI / fmt (rustfmt --check) (push) Canceled after 0s
CI / clippy (ubuntu-latest) (push) Canceled after 0s
CI / clippy (windows-latest) (push) Canceled after 0s
CI / test (ubuntu-latest) (push) Canceled after 0s
CI / test (windows-latest) (push) Canceled after 0s
CI / build release (ubuntu-latest) (push) Canceled after 0s
CI / build release (windows-latest) (push) Canceled after 0s
CI / runtime smoke (ubuntu x64, xvfb) (push) Canceled after 0s
Guards / core 零 UI 守门 (push) Canceled after 0s
Guards / presenter 零 UI 守门 (push) Canceled after 0s
Guards / design 零第三方依赖守门 (push) Canceled after 0s
Guards / unsafe 落点守门(集合必须恰好一个文件) (push) Canceled after 0s
Guards / 文件行数 ≤400 守门 (push) Canceled after 0s
Guards / 依赖许可与来源(cargo-deny) (push) Canceled after 0s
首个 iced + Material 3 Expressive 版本的源码快照。 完整历史与日常提交在 dev 分支;main 只放阶段性快照。
28 lines
1.1 KiB
Rust
28 lines
1.1 KiB
Rust
//! `card_neutral` 测试组共用的帮手:改前路径的复原、模式列表、色相环距离。
|
|
//!
|
|
//! 拆成子模块是为了单文件 ≤400 行的纪律(`card_neutral.rs` 是 crate 根,`common` / `dump`
|
|
//! 只是它的子模块;cargo 只把 `tests/card_neutral.rs` 当一个 test target)。
|
|
|
|
use unlucky_design::color::{Palettes, Scheme, SchemeFlavor};
|
|
use unlucky_design::palette::Card;
|
|
|
|
/// 改前的路径(M87 及之前):中性调色板跟着种子染色(官方 TonalSpot)。
|
|
///
|
|
/// 产品代码已经不用它了,但公开 API 仍在(取色路径就靠它逐色染色),所以这里能原样复现「改前」。
|
|
pub fn before_d43(card: Card, flavor: SchemeFlavor) -> Scheme {
|
|
Scheme::from_palettes(
|
|
&Palettes::from_seed_with_neutral_chroma(card.seed, card.neutral_chroma),
|
|
flavor,
|
|
)
|
|
}
|
|
|
|
pub fn flavors() -> [SchemeFlavor; 2] {
|
|
[SchemeFlavor::Light, SchemeFlavor::Dark]
|
|
}
|
|
|
|
/// 色相环上的最短距离(度)。
|
|
pub fn hue_gap(a: f64, b: f64) -> f64 {
|
|
let raw = (a - b).abs();
|
|
raw.min(360.0 - raw)
|
|
}
|