diff --git a/ipc/serde/Cargo.toml b/ipc/serde/Cargo.toml new file mode 100644 index 000000000..1663526e7 --- /dev/null +++ b/ipc/serde/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "ethcore-bin-serde" +version = "0.1.0" +authors = ["Nikolay Volf"] +build = "build.rs" + +[lib] + +[dependencies] +bincode = "*" +serde = "0.7.0" +ethcore-devtools = { path = "../../devtools" } + +[build-dependencies] +syntex = "*" +serde_codegen = "0.7.0" diff --git a/ipc/serde/build.rs b/ipc/serde/build.rs new file mode 100644 index 000000000..9a147f446 --- /dev/null +++ b/ipc/serde/build.rs @@ -0,0 +1,30 @@ +// Copyright 2015, 2016 Ethcore (UK) Ltd. +// This file is part of Parity. + +// Parity is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity. If not, see . + +extern crate syntex; +extern crate serde_codegen; + +use std::env; +use std::path::Path; + +pub fn main() { + let out_dir = env::var_os("OUT_DIR").unwrap(); + let src = Path::new("src/lib.rs.in"); + let dst = Path::new(&out_dir).join("lib.rs"); + let mut registry = syntex::Registry::new(); + serde_codegen::register(&mut registry); + registry.expand("", &src, &dst).unwrap(); +} diff --git a/ipc/serde/src/lib.rs b/ipc/serde/src/lib.rs new file mode 100644 index 000000000..af29c8f87 --- /dev/null +++ b/ipc/serde/src/lib.rs @@ -0,0 +1,17 @@ +// Copyright 2015, 2016 Ethcore (UK) Ltd. +// This file is part of Parity. + +// Parity is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity. If not, see . + +include!(concat!(env!("OUT_DIR"), "/lib.rs")); diff --git a/ipc/serde/src/lib.rs.in b/ipc/serde/src/lib.rs.in new file mode 100644 index 000000000..4235e6e76 --- /dev/null +++ b/ipc/serde/src/lib.rs.in @@ -0,0 +1,18 @@ +// Copyright 2015, 2016 Ethcore (UK) Ltd. +// This file is part of Parity. + +// Parity is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity. If not, see . + +#[derive(Serialize, Deserialize)] +struct BinBox([u8; mem::size_of()]);