diff options
-rw-r--r-- | src/lib.rs | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -4,6 +4,7 @@ extern crate termion; extern crate serde; use std::str::FromStr; +use std::hash::Hash; use std::fmt::{Debug, Display, Formatter}; @@ -165,14 +166,14 @@ pub trait Decodable where Self: Sized { #[cfg(feature="use-serde")] pub trait Arch { - type Address: Address + Debug + Serialize + for<'de> Deserialize<'de>; + type Address: Address + Debug + Hash + PartialEq + Eq + Serialize + for<'de> Deserialize<'de>; type Instruction: Decodable + LengthedInstruction<Unit=Self::Address> + Debug; type Operand; } #[cfg(not(feature="use-serde"))] pub trait Arch { - type Address: Address + Debug; + type Address: Address + Debug + Hash + PartialEq + Eq; type Instruction: Decodable + LengthedInstruction<Unit=Self::Address> + Debug; type Operand; } @@ -183,6 +184,15 @@ pub trait LengthedInstruction { fn min_size() -> Self::Unit; } +#[cfg(feature="use-serde")] +impl Serialize for ColorSettings { + fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> { + use serde::ser::SerializeStruct; + let mut s = serializer.serialize_struct("ColorSettings", 0)?; + s.end() + } +} + pub struct ColorSettings { arithmetic: color::Fg<&'static color::Color>, stack: color::Fg<&'static color::Color>, |