将枚举换成整型值的输出。
This commit is contained in:
		| @@ -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" | ||||
|   | ||||
| @@ -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<JsValue, String> { | ||||
|     let methods = ColorExpand::iter() | ||||
|     let methods = enum_iterator::all::<ColorExpand>() | ||||
|         .map(|variant| { | ||||
|             serde_json::json!({ | ||||
|                 "label": variant.label(), | ||||
|                 "value": variant.to_string(), | ||||
|                 "value": variant as u8, | ||||
|             }) | ||||
|         }) | ||||
|         .collect::<Vec<_>>(); | ||||
| @@ -183,11 +182,11 @@ pub fn q_scheme_color_expanding_methods() -> Result<JsValue, String> { | ||||
|  | ||||
| #[wasm_bindgen] | ||||
| pub fn q_scheme_wacg_settings() -> Result<JsValue, String> { | ||||
|     let settings = WACGSetting::iter() | ||||
|     let settings = enum_iterator::all::<WACGSetting>() | ||||
|         .map(|setting| { | ||||
|             serde_json::json!({ | ||||
|                 "label": setting.label(), | ||||
|                 "value": setting.to_string(), | ||||
|                 "value": setting as u8, | ||||
|             }) | ||||
|         }) | ||||
|         .collect::<Vec<_>>(); | ||||
|   | ||||
| @@ -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, | ||||
|   | ||||
							
								
								
									
										60
									
								
								src/color_functions/color_module.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										60
									
								
								src/color_functions/color_module.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -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; | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										60
									
								
								src/color_functions/color_module_bg.wasm.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										60
									
								
								src/color_functions/color_module_bg.wasm.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -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; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user