diff --git a/Cargo.lock b/Cargo.lock index 9fabbc52..32a79284 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,5 +1,7 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "aho-corasick" version = "0.7.18" @@ -26,9 +28,9 @@ checksum = "ee10e43ae4a853c0a3591d4e2ada1719e553be18199d9da9d4a83f5927c2f5c7" [[package]] name = "approx" -version = "0.3.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" +checksum = "072df7202e63b127ab55acfe16ce97013d5b97bf160489336d3f1840fd78e99e" dependencies = [ "num-traits", ] @@ -514,17 +516,6 @@ dependencies = [ "system-deps", ] -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - [[package]] name = "getrandom" version = "0.2.3" @@ -533,7 +524,7 @@ checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" dependencies = [ "cfg-if", "libc", - "wasi 0.10.2+wasi-snapshot-preview1", + "wasi", ] [[package]] @@ -981,23 +972,23 @@ dependencies = [ [[package]] name = "palette" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a05c0334468e62a4dfbda34b29110aa7d70d58c7fdb2c9857b5874dd9827cc59" +checksum = "f9735f7e1e51a3f740bacd5dc2724b61a7806f23597a8736e679f38ee3435d18" dependencies = [ "approx", "num-traits", "palette_derive", "phf", - "phf_codegen", ] [[package]] name = "palette_derive" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b4b5f600e60dd3a147fb57b4547033d382d1979eb087af310e91cb45a63b1f4" +checksum = "7799c3053ea8a6d8a1193c7ba42f534e7863cf52e378a7f90406f4a645d33bad" dependencies = [ + "find-crate", "proc-macro2", "quote", "syn", @@ -1097,38 +1088,44 @@ dependencies = [ [[package]] name = "phf" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +checksum = "b2ac8b67553a7ca9457ce0e526948cad581819238f4a9d1ea74545851fa24f37" dependencies = [ + "phf_macros", "phf_shared", + "proc-macro-hack", ] [[package]] -name = "phf_codegen" -version = "0.8.0" +name = "phf_generator" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +checksum = "d43f3220d96e0080cc9ea234978ccd80d904eafb17be31bb0f76daaea6493082" dependencies = [ - "phf_generator", "phf_shared", + "rand", ] [[package]] -name = "phf_generator" -version = "0.8.0" +name = "phf_macros" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +checksum = "b706f5936eb50ed880ae3009395b43ed19db5bff2ebd459c95e7bf013a89ab86" dependencies = [ + "phf_generator", "phf_shared", - "rand", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "phf_shared" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +checksum = "a68318426de33640f02be62b4ae8eb1261be2efbc337b60c54d845bf4484e0d9" dependencies = [ "siphasher", ] @@ -1245,23 +1242,21 @@ dependencies = [ [[package]] name = "rand" -version = "0.7.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" dependencies = [ - "getrandom 0.1.16", "libc", "rand_chacha", "rand_core", "rand_hc", - "rand_pcg", ] [[package]] name = "rand_chacha" -version = "0.2.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", "rand_core", @@ -1269,27 +1264,18 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.5.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ - "getrandom 0.1.16", + "getrandom", ] [[package]] name = "rand_hc" -version = "0.2.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rand_pcg" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" dependencies = [ "rand_core", ] @@ -1757,7 +1743,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.3", + "getrandom", ] [[package]] @@ -1795,12 +1781,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - [[package]] name = "wasi" version = "0.10.2+wasi-snapshot-preview1" diff --git a/backend/Cargo.toml b/backend/Cargo.toml index 1a9483cb..351c7249 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -14,7 +14,7 @@ hidapi = { version = "1.2", default-features = false, features = ["linux-shared- libc = "0.2" once_cell = "1.4" ordered-float = { version = "2.0", features = ["serde"] } -palette = "0.5" +palette = "0.6" regex = "1" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" diff --git a/backend/src/color.rs b/backend/src/color.rs index 86c6da75..160b8d5a 100644 --- a/backend/src/color.rs +++ b/backend/src/color.rs @@ -1,5 +1,5 @@ use ordered_float::NotNan; -use palette::{Component, IntoColor, RgbHue}; +use palette::{FromColor, FromComponent, IntoColor, IntoComponent, RgbHue}; use serde::{de, Deserialize, Serialize}; use std::{f64::consts::PI, fmt}; @@ -38,18 +38,18 @@ impl Hs { } pub fn from_ints(h: u8, s: u8) -> Self { - Self::new(h.convert::() * (2. * PI), s.convert()) + Self::new(f64::from_component(h) * (2. * PI), f64::from_component(s)) } pub fn to_ints(self) -> (u8, u8) { let h = (self.h / (2. * PI)).rem_euclid(1.); - (h.convert(), self.s.convert()) + (h.into_component(), self.s.into_component()) } pub fn to_rgb(self) -> Rgb { let hue = RgbHue::from_radians(*self.h); let hsv = PaletteHsv::new(hue, *self.s, 1.); - let rgb: PaletteLinSrgb = hsv.into_rgb(); + let rgb: PaletteLinSrgb = palette::Srgb::::from_color(hsv).into_linear(); let (r, g, b) = rgb.into_components(); Rgb::from_floats(r, g, b) } @@ -74,14 +74,18 @@ impl Rgb { pub fn from_floats(r: f64, g: f64, b: f64) -> Self { Self { - r: r.convert(), - g: g.convert(), - b: b.convert(), + r: r.into_component(), + g: g.into_component(), + b: b.into_component(), } } pub fn to_floats(self) -> (f64, f64, f64) { - (self.r.convert(), self.g.convert(), self.b.convert()) + ( + self.r.into_component(), + self.g.into_component(), + self.b.into_component(), + ) } /// Parse from hexadecimal string @@ -100,7 +104,7 @@ impl Rgb { pub fn to_hs_lossy(self) -> Hs { let (r, g, b) = self.to_floats(); let rgb = PaletteLinSrgb::new(r, g, b); - let hsv: PaletteHsv = rgb.into_hsv(); + let hsv: PaletteHsv = palette::Srgb::::from_linear(rgb).into_color(); let (h, s, _) = hsv.into_components(); Hs::new(h.to_radians(), s) }