From ac9910411417fb84e128ece18a3c530a2467bdc5 Mon Sep 17 00:00:00 2001 From: Florian Dehau Date: Wed, 27 May 2020 23:28:38 +0200 Subject: [PATCH] feat(style): add support to serialize and deserialize Style using serde * Add serde as an optional dependency. * Add feature-gated derives to Color, Modifier and Style. --- CHANGELOG.md | 2 ++ Cargo.toml | 1 + src/style.rs | 3 +++ 3 files changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f58a41e..dad6381 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## To be released +* Add feature-gated (`serde`) serialization of `Style`. + ## v0.9.5 - 2020-05-21 ### Bug Fixes diff --git a/Cargo.toml b/Cargo.toml index e2bcbe4..514b958 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,6 +31,7 @@ rustbox = { version = "0.11", optional = true } crossterm = { version = "0.17", optional = true } easycurses = { version = "0.12.2", optional = true } pancurses = { version = "0.16.1", optional = true, features = ["win32a"] } +serde = { version = "1", "optional" = true, features = ["derive"]} [dev-dependencies] rand = "0.7" diff --git a/src/style.rs b/src/style.rs index dcf8cb8..6bbc9e2 100644 --- a/src/style.rs +++ b/src/style.rs @@ -1,6 +1,7 @@ use bitflags::bitflags; #[derive(Debug, Clone, Copy, PartialEq)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub enum Color { Reset, Black, @@ -24,6 +25,7 @@ pub enum Color { } bitflags! { + #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct Modifier: u16 { const BOLD = 0b0000_0000_0001; const DIM = 0b0000_0000_0010; @@ -38,6 +40,7 @@ bitflags! { } #[derive(Debug, Clone, Copy, PartialEq)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct Style { pub fg: Color, pub bg: Color,