diff --git a/color-module/Cargo.toml b/color-module/Cargo.toml index 03884be..d829ab4 100644 --- a/color-module/Cargo.toml +++ b/color-module/Cargo.toml @@ -8,6 +8,7 @@ crate-type = ["cdylib"] [dependencies] color-name = "1.1.0" +enum-iterator = "2.1.0" palette = { version = "0.7.6", features = ["serde"] } serde = { version = "1.0.216", features = ["derive"] } serde-wasm-bindgen = "0.6.5" diff --git a/color-module/src/schemes/q_style/mod.rs b/color-module/src/schemes/q_style/mod.rs index a50c5ed..cb4b828 100644 --- a/color-module/src/schemes/q_style/mod.rs +++ b/color-module/src/schemes/q_style/mod.rs @@ -4,7 +4,6 @@ use baseline::Baseline; use palette::FromColor; use scheme_setting::{ColorExpand, WACGSetting}; use serde::Serialize; -use strum::IntoEnumIterator; use wasm_bindgen::{prelude::wasm_bindgen, JsValue}; use crate::{errors, parse_option_to_oklch, parse_to_oklch}; @@ -169,11 +168,11 @@ impl SchemeExport for QScheme { #[wasm_bindgen] pub fn q_scheme_color_expanding_methods() -> Result { - let methods = ColorExpand::iter() + let methods = enum_iterator::all::() .map(|variant| { serde_json::json!({ "label": variant.label(), - "value": variant.to_string(), + "value": variant as u8, }) }) .collect::>(); @@ -183,11 +182,11 @@ pub fn q_scheme_color_expanding_methods() -> Result { #[wasm_bindgen] pub fn q_scheme_wacg_settings() -> Result { - let settings = WACGSetting::iter() + let settings = enum_iterator::all::() .map(|setting| { serde_json::json!({ "label": setting.label(), - "value": setting.to_string(), + "value": setting as u8, }) }) .collect::>(); diff --git a/color-module/src/schemes/q_style/scheme_setting.rs b/color-module/src/schemes/q_style/scheme_setting.rs index cb79063..f405a16 100644 --- a/color-module/src/schemes/q_style/scheme_setting.rs +++ b/color-module/src/schemes/q_style/scheme_setting.rs @@ -1,8 +1,9 @@ use std::ops::Mul; +use enum_iterator::Sequence; use palette::Oklch; use serde::{Deserialize, Serialize}; -use strum::{Display, EnumIter, EnumString}; +use strum::Display; use wasm_bindgen::prelude::wasm_bindgen; #[derive(Debug, Clone, Copy, Serialize, Deserialize)] @@ -68,9 +69,9 @@ pub struct SchemeSetting { pub wacg_follows: WACGSetting, } -#[derive(Debug, Clone, Copy, Display, EnumString, EnumIter, Serialize, Deserialize)] -#[strum(serialize_all = "lowercase")] +#[derive(Debug, Clone, Copy, Display, Sequence, Serialize, Deserialize)] #[wasm_bindgen] +#[repr(u8)] pub enum ColorExpand { Complementary, Analogous, @@ -95,9 +96,9 @@ impl ColorExpand { } } -#[derive(Debug, Clone, Copy, Display, EnumString, EnumIter, Serialize, Deserialize)] -#[strum(serialize_all = "lowercase")] +#[derive(Debug, Clone, Copy, Display, Sequence, Serialize, Deserialize)] #[wasm_bindgen] +#[repr(u8)] pub enum WACGSetting { Fixed, AutomaticAA, diff --git a/src/color_functions/color_module.d.ts b/src/color_functions/color_module.d.ts index 189db17..d09db1a 100644 --- a/src/color_functions/color_module.d.ts +++ b/src/color_functions/color_module.d.ts @@ -175,6 +175,13 @@ export interface InitOutput { readonly __wbg_get_differ_percent: (a: number) => number; readonly __wbg_set_differ_percent: (a: number, b: number) => void; readonly generate_palette_from_color: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number]; + readonly __wbg_hctdiffference_free: (a: number, b: number) => void; + readonly __wbg_get_hctdiffference_hue: (a: number) => number; + readonly __wbg_set_hctdiffference_hue: (a: number, b: number) => void; + readonly __wbg_get_hctdiffference_chroma: (a: number) => number; + readonly __wbg_set_hctdiffference_chroma: (a: number, b: number) => void; + readonly __wbg_get_hctdiffference_lightness: (a: number) => number; + readonly __wbg_set_hctdiffference_lightness: (a: number, b: number) => void; readonly __wbg_mixreversing_free: (a: number, b: number) => void; readonly __wbg_get_mixreversing_r_factor: (a: number) => number; readonly __wbg_set_mixreversing_r_factor: (a: number, b: number) => void; @@ -184,25 +191,6 @@ export interface InitOutput { readonly __wbg_set_mixreversing_b_factor: (a: number, b: number) => void; readonly __wbg_get_mixreversing_average: (a: number) => number; readonly __wbg_set_mixreversing_average: (a: number, b: number) => void; - readonly __wbg_hctdiffference_free: (a: number, b: number) => void; - readonly __wbg_get_hctdiffference_hue: (a: number) => number; - readonly __wbg_set_hctdiffference_hue: (a: number, b: number) => void; - readonly __wbg_get_hctdiffference_chroma: (a: number) => number; - readonly __wbg_set_hctdiffference_chroma: (a: number, b: number) => void; - readonly __wbg_get_hctdiffference_lightness: (a: number) => number; - readonly __wbg_set_hctdiffference_lightness: (a: number, b: number) => void; - readonly __wbg_swatchentry_free: (a: number, b: number) => void; - readonly __wbg_get_swatchentry_name: (a: number) => [number, number]; - readonly __wbg_set_swatchentry_name: (a: number, b: number, c: number) => void; - readonly __wbg_get_swatchentry_color: (a: number) => [number, number]; - readonly __wbg_set_swatchentry_color: (a: number, b: number, c: number) => void; - readonly __wbg_rgbdifference_free: (a: number, b: number) => void; - readonly __wbg_get_rgbdifference_r: (a: number) => number; - readonly __wbg_set_rgbdifference_r: (a: number, b: number) => void; - readonly __wbg_get_rgbdifference_g: (a: number) => number; - readonly __wbg_set_rgbdifference_g: (a: number, b: number) => void; - readonly __wbg_get_rgbdifference_b: (a: number) => number; - readonly __wbg_set_rgbdifference_b: (a: number, b: number) => void; readonly color_categories: () => [number, number, number]; readonly search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number]; readonly __wbg_colorshifting_free: (a: number, b: number) => void; @@ -230,17 +218,6 @@ export interface InitOutput { readonly generate_q_scheme_automatically: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => [number, number, number]; readonly generate_q_scheme_manually: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number) => [number, number, number]; readonly generate_swatch_scheme: (a: number, b: number, c: number) => [number, number, number]; - readonly __wbg_swatchschemesetting_free: (a: number, b: number) => void; - readonly __wbg_get_swatchschemesetting_amount: (a: number) => number; - readonly __wbg_set_swatchschemesetting_amount: (a: number, b: number) => void; - readonly __wbg_get_swatchschemesetting_min_lightness: (a: number) => number; - readonly __wbg_set_swatchschemesetting_min_lightness: (a: number, b: number) => void; - readonly __wbg_get_swatchschemesetting_max_lightness: (a: number) => number; - readonly __wbg_set_swatchschemesetting_max_lightness: (a: number, b: number) => void; - readonly __wbg_get_swatchschemesetting_include_primary: (a: number) => number; - readonly __wbg_set_swatchschemesetting_include_primary: (a: number, b: number) => void; - readonly __wbg_get_swatchschemesetting_dark_convert: (a: number) => number; - readonly __wbg_set_swatchschemesetting_dark_convert: (a: number, b: number) => void; readonly __wbg_hsldifference_free: (a: number, b: number) => void; readonly __wbg_get_hsldifference_hue: (a: number) => number; readonly __wbg_set_hsldifference_hue: (a: number, b: number) => void; @@ -248,6 +225,11 @@ export interface InitOutput { readonly __wbg_set_hsldifference_saturation: (a: number, b: number) => void; readonly __wbg_get_hsldifference_lightness: (a: number) => number; readonly __wbg_set_hsldifference_lightness: (a: number, b: number) => void; + readonly __wbg_swatchentry_free: (a: number, b: number) => void; + readonly __wbg_get_swatchentry_name: (a: number) => [number, number]; + readonly __wbg_set_swatchentry_name: (a: number, b: number, c: number) => void; + readonly __wbg_get_swatchentry_color: (a: number) => [number, number]; + readonly __wbg_set_swatchentry_color: (a: number, b: number, c: number) => void; readonly lighten: (a: number, b: number, c: number) => [number, number, number, number]; readonly lighten_absolute: (a: number, b: number, c: number) => [number, number, number, number]; readonly darken: (a: number, b: number, c: number) => [number, number, number, number]; @@ -269,6 +251,24 @@ export interface InitOutput { readonly represent_hct: (a: number, b: number) => [number, number, number, number]; readonly hct_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; readonly wacg_relative_contrast: (a: number, b: number, c: number, d: number) => [number, number, number]; + readonly __wbg_rgbdifference_free: (a: number, b: number) => void; + readonly __wbg_get_rgbdifference_r: (a: number) => number; + readonly __wbg_set_rgbdifference_r: (a: number, b: number) => void; + readonly __wbg_get_rgbdifference_g: (a: number) => number; + readonly __wbg_set_rgbdifference_g: (a: number, b: number) => void; + readonly __wbg_get_rgbdifference_b: (a: number) => number; + readonly __wbg_set_rgbdifference_b: (a: number, b: number) => void; + readonly __wbg_swatchschemesetting_free: (a: number, b: number) => void; + readonly __wbg_get_swatchschemesetting_amount: (a: number) => number; + readonly __wbg_set_swatchschemesetting_amount: (a: number, b: number) => void; + readonly __wbg_get_swatchschemesetting_min_lightness: (a: number) => number; + readonly __wbg_set_swatchschemesetting_min_lightness: (a: number, b: number) => void; + readonly __wbg_get_swatchschemesetting_max_lightness: (a: number) => number; + readonly __wbg_set_swatchschemesetting_max_lightness: (a: number, b: number) => void; + readonly __wbg_get_swatchschemesetting_include_primary: (a: number) => number; + readonly __wbg_set_swatchschemesetting_include_primary: (a: number, b: number) => void; + readonly __wbg_get_swatchschemesetting_dark_convert: (a: number) => number; + readonly __wbg_set_swatchschemesetting_dark_convert: (a: number, b: number) => void; readonly __wbindgen_malloc: (a: number, b: number) => number; readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; readonly __wbindgen_exn_store: (a: number) => void; diff --git a/src/color_functions/color_module_bg.wasm b/src/color_functions/color_module_bg.wasm index 956e1a2..7e39eb4 100644 Binary files a/src/color_functions/color_module_bg.wasm and b/src/color_functions/color_module_bg.wasm differ diff --git a/src/color_functions/color_module_bg.wasm.d.ts b/src/color_functions/color_module_bg.wasm.d.ts index 1f8c4ad..02d67f7 100644 --- a/src/color_functions/color_module_bg.wasm.d.ts +++ b/src/color_functions/color_module_bg.wasm.d.ts @@ -34,6 +34,13 @@ export const __wbg_set_differ_delta: (a: number, b: number) => void; export const __wbg_get_differ_percent: (a: number) => number; export const __wbg_set_differ_percent: (a: number, b: number) => void; export const generate_palette_from_color: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number]; +export const __wbg_hctdiffference_free: (a: number, b: number) => void; +export const __wbg_get_hctdiffference_hue: (a: number) => number; +export const __wbg_set_hctdiffference_hue: (a: number, b: number) => void; +export const __wbg_get_hctdiffference_chroma: (a: number) => number; +export const __wbg_set_hctdiffference_chroma: (a: number, b: number) => void; +export const __wbg_get_hctdiffference_lightness: (a: number) => number; +export const __wbg_set_hctdiffference_lightness: (a: number, b: number) => void; export const __wbg_mixreversing_free: (a: number, b: number) => void; export const __wbg_get_mixreversing_r_factor: (a: number) => number; export const __wbg_set_mixreversing_r_factor: (a: number, b: number) => void; @@ -43,25 +50,6 @@ export const __wbg_get_mixreversing_b_factor: (a: number) => number; export const __wbg_set_mixreversing_b_factor: (a: number, b: number) => void; export const __wbg_get_mixreversing_average: (a: number) => number; export const __wbg_set_mixreversing_average: (a: number, b: number) => void; -export const __wbg_hctdiffference_free: (a: number, b: number) => void; -export const __wbg_get_hctdiffference_hue: (a: number) => number; -export const __wbg_set_hctdiffference_hue: (a: number, b: number) => void; -export const __wbg_get_hctdiffference_chroma: (a: number) => number; -export const __wbg_set_hctdiffference_chroma: (a: number, b: number) => void; -export const __wbg_get_hctdiffference_lightness: (a: number) => number; -export const __wbg_set_hctdiffference_lightness: (a: number, b: number) => void; -export const __wbg_swatchentry_free: (a: number, b: number) => void; -export const __wbg_get_swatchentry_name: (a: number) => [number, number]; -export const __wbg_set_swatchentry_name: (a: number, b: number, c: number) => void; -export const __wbg_get_swatchentry_color: (a: number) => [number, number]; -export const __wbg_set_swatchentry_color: (a: number, b: number, c: number) => void; -export const __wbg_rgbdifference_free: (a: number, b: number) => void; -export const __wbg_get_rgbdifference_r: (a: number) => number; -export const __wbg_set_rgbdifference_r: (a: number, b: number) => void; -export const __wbg_get_rgbdifference_g: (a: number) => number; -export const __wbg_set_rgbdifference_g: (a: number, b: number) => void; -export const __wbg_get_rgbdifference_b: (a: number) => number; -export const __wbg_set_rgbdifference_b: (a: number, b: number) => void; export const color_categories: () => [number, number, number]; export const search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number]; export const __wbg_colorshifting_free: (a: number, b: number) => void; @@ -89,17 +77,6 @@ export const generate_material_design_2_scheme: (a: number, b: number, c: number export const generate_q_scheme_automatically: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => [number, number, number]; export const generate_q_scheme_manually: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number) => [number, number, number]; export const generate_swatch_scheme: (a: number, b: number, c: number) => [number, number, number]; -export const __wbg_swatchschemesetting_free: (a: number, b: number) => void; -export const __wbg_get_swatchschemesetting_amount: (a: number) => number; -export const __wbg_set_swatchschemesetting_amount: (a: number, b: number) => void; -export const __wbg_get_swatchschemesetting_min_lightness: (a: number) => number; -export const __wbg_set_swatchschemesetting_min_lightness: (a: number, b: number) => void; -export const __wbg_get_swatchschemesetting_max_lightness: (a: number) => number; -export const __wbg_set_swatchschemesetting_max_lightness: (a: number, b: number) => void; -export const __wbg_get_swatchschemesetting_include_primary: (a: number) => number; -export const __wbg_set_swatchschemesetting_include_primary: (a: number, b: number) => void; -export const __wbg_get_swatchschemesetting_dark_convert: (a: number) => number; -export const __wbg_set_swatchschemesetting_dark_convert: (a: number, b: number) => void; export const __wbg_hsldifference_free: (a: number, b: number) => void; export const __wbg_get_hsldifference_hue: (a: number) => number; export const __wbg_set_hsldifference_hue: (a: number, b: number) => void; @@ -107,6 +84,11 @@ export const __wbg_get_hsldifference_saturation: (a: number) => number; export const __wbg_set_hsldifference_saturation: (a: number, b: number) => void; export const __wbg_get_hsldifference_lightness: (a: number) => number; export const __wbg_set_hsldifference_lightness: (a: number, b: number) => void; +export const __wbg_swatchentry_free: (a: number, b: number) => void; +export const __wbg_get_swatchentry_name: (a: number) => [number, number]; +export const __wbg_set_swatchentry_name: (a: number, b: number, c: number) => void; +export const __wbg_get_swatchentry_color: (a: number) => [number, number]; +export const __wbg_set_swatchentry_color: (a: number, b: number, c: number) => void; export const lighten: (a: number, b: number, c: number) => [number, number, number, number]; export const lighten_absolute: (a: number, b: number, c: number) => [number, number, number, number]; export const darken: (a: number, b: number, c: number) => [number, number, number, number]; @@ -128,6 +110,24 @@ export const oklch_to_hex: (a: number, b: number, c: number) => [number, number, export const represent_hct: (a: number, b: number) => [number, number, number, number]; export const hct_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; export const wacg_relative_contrast: (a: number, b: number, c: number, d: number) => [number, number, number]; +export const __wbg_rgbdifference_free: (a: number, b: number) => void; +export const __wbg_get_rgbdifference_r: (a: number) => number; +export const __wbg_set_rgbdifference_r: (a: number, b: number) => void; +export const __wbg_get_rgbdifference_g: (a: number) => number; +export const __wbg_set_rgbdifference_g: (a: number, b: number) => void; +export const __wbg_get_rgbdifference_b: (a: number) => number; +export const __wbg_set_rgbdifference_b: (a: number, b: number) => void; +export const __wbg_swatchschemesetting_free: (a: number, b: number) => void; +export const __wbg_get_swatchschemesetting_amount: (a: number) => number; +export const __wbg_set_swatchschemesetting_amount: (a: number, b: number) => void; +export const __wbg_get_swatchschemesetting_min_lightness: (a: number) => number; +export const __wbg_set_swatchschemesetting_min_lightness: (a: number, b: number) => void; +export const __wbg_get_swatchschemesetting_max_lightness: (a: number) => number; +export const __wbg_set_swatchschemesetting_max_lightness: (a: number, b: number) => void; +export const __wbg_get_swatchschemesetting_include_primary: (a: number) => number; +export const __wbg_set_swatchschemesetting_include_primary: (a: number, b: number) => void; +export const __wbg_get_swatchschemesetting_dark_convert: (a: number) => number; +export const __wbg_set_swatchschemesetting_dark_convert: (a: number, b: number) => void; export const __wbindgen_malloc: (a: number, b: number) => number; export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; export const __wbindgen_exn_store: (a: number) => void;