From 0ef3cdf12d5a5087bf95e1d8820723536a28a0cf Mon Sep 17 00:00:00 2001 From: iximeow Date: Sun, 21 Apr 2019 14:17:00 -0700 Subject: awful tweaks to expose a serde flag on yaxpeax-arch which will trickle through everything --- Cargo.toml | 7 +++++++ src/armv7.rs | 9 +++++++++ src/lib.rs | 4 ++++ 3 files changed, 20 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index d9f2b9c..641c3dc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,6 +11,8 @@ A rust arm decoder [dependencies] yaxpeax-arch = { path = "../../yaxpeax-arch" } +"serde" = "*" +"serde_derive" = "*" [[test]] name = "test" @@ -19,3 +21,8 @@ path = "test/test.rs" [[bench]] name = "bench" path = "test/test.rs" + +[features] +default = [] + +use-serde = [] diff --git a/src/armv7.rs b/src/armv7.rs index 5ac7a7c..ab12797 100644 --- a/src/armv7.rs +++ b/src/armv7.rs @@ -1,3 +1,6 @@ +#[cfg(feature="use-serde")] +use serde::{Serialize, Deserialize}; + use std::fmt::{Display, Formatter}; use yaxpeax_arch::{Arch, Colorize, Colored, ColorSettings, Decodable, LengthedInstruction, ShowContextual, YaxColors}; @@ -1190,8 +1193,14 @@ impl Decodable for Instruction { } } +#[cfg(feature="use-serde")] +#[derive(Debug, Serialize, Deserialize)] +pub struct ARMv7; + +#[cfg(not(feature="use-serde"))] #[derive(Debug)] pub struct ARMv7; + impl Arch for ARMv7 { type Address = u32; type Instruction = Instruction; diff --git a/src/lib.rs b/src/lib.rs index 88c01b0..dba62c8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,7 @@ +#[cfg(feature="use-serde")] +#[macro_use] extern crate serde_derive; +#[cfg(feature="use-serde")] +extern crate serde; extern crate yaxpeax_arch; pub mod armv7; -- cgit v1.1