改进枚举内容的序列化输出。

This commit is contained in:
徐涛 2025-02-07 09:00:06 +08:00
parent 2bc250fc3d
commit 41788c4944
5 changed files with 18 additions and 16 deletions

View File

@ -13,6 +13,7 @@ palette = { version = "0.7.6", features = ["serde"] }
serde = { version = "1.0.216", features = ["derive"] } serde = { version = "1.0.216", features = ["derive"] }
serde-wasm-bindgen = "0.6.5" serde-wasm-bindgen = "0.6.5"
serde_json = "1.0.134" serde_json = "1.0.134"
serde_repr = "0.1.19"
strum = { version = "0.26.3", features = ["derive", "strum_macros"] } strum = { version = "0.26.3", features = ["derive", "strum_macros"] }
strum_macros = "0.26.4" strum_macros = "0.26.4"
thiserror = "2.0.9" thiserror = "2.0.9"

View File

@ -3,6 +3,7 @@ use std::ops::{Div, Mul};
use enum_iterator::Sequence; use enum_iterator::Sequence;
use palette::Oklch; use palette::Oklch;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use serde_repr::{Deserialize_repr, Serialize_repr};
use strum::Display; use strum::Display;
use wasm_bindgen::{prelude::wasm_bindgen, JsError, JsValue}; use wasm_bindgen::{prelude::wasm_bindgen, JsError, JsValue};
@ -104,7 +105,7 @@ pub struct SchemeSetting {
pub wacg_follows: WACGSetting, pub wacg_follows: WACGSetting,
} }
#[derive(Debug, Clone, Copy, Display, Sequence, Serialize, Deserialize)] #[derive(Debug, Clone, Copy, Display, Sequence, Serialize_repr, Deserialize_repr)]
#[wasm_bindgen] #[wasm_bindgen]
#[repr(u8)] #[repr(u8)]
pub enum ColorExpand { pub enum ColorExpand {
@ -131,7 +132,7 @@ impl ColorExpand {
} }
} }
#[derive(Debug, Clone, Copy, Display, Sequence, Serialize, Deserialize)] #[derive(Debug, Clone, Copy, Display, Sequence, Serialize_repr, Deserialize_repr)]
#[wasm_bindgen] #[wasm_bindgen]
#[repr(u8)] #[repr(u8)]
pub enum WACGSetting { pub enum WACGSetting {

View File

@ -181,6 +181,13 @@ export interface InitOutput {
readonly mix: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number]; readonly mix: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
readonly tint: (a: number, b: number, c: number) => [number, number, number, number]; readonly tint: (a: number, b: number, c: number) => [number, number, number, number];
readonly shade: (a: number, b: number, c: number) => [number, number, number, number]; readonly shade: (a: number, b: number, c: number) => [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 color_categories: () => [number, number, number]; readonly color_categories: () => [number, number, number];
readonly search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number]; readonly search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly __wbg_hsldifference_free: (a: number, b: number) => void; readonly __wbg_hsldifference_free: (a: number, b: number) => void;
@ -214,13 +221,6 @@ export interface InitOutput {
readonly __wbg_get_schemesetting_hover: (a: number) => number; readonly __wbg_get_schemesetting_hover: (a: number) => number;
readonly __wbg_get_schemesetting_active: (a: number) => number; readonly __wbg_get_schemesetting_active: (a: number) => number;
readonly __wbg_get_schemesetting_focus: (a: number) => number; readonly __wbg_get_schemesetting_focus: (a: 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_oklchdifference_free: (a: number, b: number) => void; readonly __wbg_oklchdifference_free: (a: number, b: number) => void;
readonly __wbg_get_oklchdifference_hue: (a: number) => number; readonly __wbg_get_oklchdifference_hue: (a: number) => number;
readonly __wbg_set_oklchdifference_hue: (a: number, b: number) => void; readonly __wbg_set_oklchdifference_hue: (a: number, b: number) => void;

View File

@ -38,6 +38,13 @@ export const darken_absolute: (a: number, b: number, c: number) => [number, numb
export const mix: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number]; export const mix: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
export const tint: (a: number, b: number, c: number) => [number, number, number, number]; export const tint: (a: number, b: number, c: number) => [number, number, number, number];
export const shade: (a: number, b: number, c: number) => [number, number, number, number]; export const shade: (a: number, b: number, c: number) => [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 color_categories: () => [number, number, number]; 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 search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number];
export const __wbg_hsldifference_free: (a: number, b: number) => void; export const __wbg_hsldifference_free: (a: number, b: number) => void;
@ -71,13 +78,6 @@ export const schemesetting_toJsValue: (a: number) => [number, number, number];
export const __wbg_get_schemesetting_hover: (a: number) => number; export const __wbg_get_schemesetting_hover: (a: number) => number;
export const __wbg_get_schemesetting_active: (a: number) => number; export const __wbg_get_schemesetting_active: (a: number) => number;
export const __wbg_get_schemesetting_focus: (a: number) => number; export const __wbg_get_schemesetting_focus: (a: 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_oklchdifference_free: (a: number, b: number) => void; export const __wbg_oklchdifference_free: (a: number, b: number) => void;
export const __wbg_get_oklchdifference_hue: (a: number) => number; export const __wbg_get_oklchdifference_hue: (a: number) => number;
export const __wbg_set_oklchdifference_hue: (a: number, b: number) => void; export const __wbg_set_oklchdifference_hue: (a: number, b: number) => void;