diff options
author | iximeow <me@iximeow.net> | 2019-05-08 01:38:21 -0700 |
---|---|---|
committer | iximeow <me@iximeow.net> | 2020-01-12 16:26:39 -0800 |
commit | 0d8563665f1dcd878d41a559313fa0c34cb98afa (patch) | |
tree | 9b280a65eac10bf484f64b5085e4e2d5d067c3e7 /src/lib.rs | |
parent | cd2881ff02ae5c90bf459581df9dcdef1535ab23 (diff) |
sneak hash/partialeq/etc into yaxpeax-arch
Diffstat (limited to 'src/lib.rs')
-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>, |