Files
Polymusic/src/color.rs
2025-08-02 18:10:22 +02:00

23 lines
605 B
Rust

use iced::Color;
use serde::{Deserialize, Deserializer, Serialize, Serializer};
pub mod color_serde {
use super::*;
pub fn serialize<S>(color: &Color, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
let data = [color.r, color.g, color.b, color.a];
data.serialize(serializer)
}
pub fn deserialize<'de, D>(deserializer: D) -> Result<Color, D::Error>
where
D: Deserializer<'de>,
{
let data: [f32; 4] = Deserialize::deserialize(deserializer)?;
Ok(Color::from_rgba(data[0], data[1], data[2], data[3]))
}
}