From 3ce71171b6879051d644cfdae37c88702ef689e2 Mon Sep 17 00:00:00 2001 From: NikVolf Date: Tue, 12 Apr 2016 18:41:23 +0300 Subject: [PATCH] serde helper crate --- ipc/serde/Cargo.toml | 16 ++++++++++++++++ ipc/serde/build.rs | 30 ++++++++++++++++++++++++++++++ ipc/serde/src/lib.rs | 17 +++++++++++++++++ ipc/serde/src/lib.rs.in | 18 ++++++++++++++++++ 4 files changed, 81 insertions(+) create mode 100644 ipc/serde/Cargo.toml create mode 100644 ipc/serde/build.rs create mode 100644 ipc/serde/src/lib.rs create mode 100644 ipc/serde/src/lib.rs.in 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()]);