diff --git a/Cargo.lock b/Cargo.lock index 65286dde..f209c7a4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,6 +10,7 @@ dependencies = [ "primitives 0.1.0", "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", + "serialization 0.1.0", ] [[package]] @@ -120,6 +121,14 @@ name = "rustc-serialize" version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "serialization" +version = "0.1.0" +dependencies = [ + "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "primitives 0.1.0", +] + [[package]] name = "time" version = "0.1.35" diff --git a/Cargo.toml b/Cargo.toml index 04c5b9ac..2b35824b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,3 +12,4 @@ eth-secp256k1 = { git = "https://github.com/ethcore/rust-secp256k1" } base58 = "0.1" primitives = { path = "primitives" } bitcrypto = { path = "crypto" } +serialization = { path = "serialization" } diff --git a/serialization/Cargo.toml b/serialization/Cargo.toml new file mode 100644 index 00000000..1c77f18d --- /dev/null +++ b/serialization/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "serialization" +version = "0.1.0" +authors = ["debris "] + +[dependencies] +byteorder = "0.5" +primitives = { path = "../primitives" } diff --git a/src/ser/compact_integer.rs b/serialization/src/compact_integer.rs similarity index 98% rename from src/ser/compact_integer.rs rename to serialization/src/compact_integer.rs index 239e60d3..dabff316 100644 --- a/src/ser/compact_integer.rs +++ b/serialization/src/compact_integer.rs @@ -2,7 +2,7 @@ //! https://bitcoin.org/en/developer-reference#compactsize-unsigned-integers use std::fmt; -use ser::{ +use { Serializable, Stream, Deserializable, Reader, Error as ReaderError }; @@ -99,7 +99,7 @@ impl Deserializable for CompactInteger { #[cfg(test)] mod tests { - use ser::{Reader, Error as ReaderError, Stream}; + use {Reader, Error as ReaderError, Stream}; use super::CompactInteger; #[test] diff --git a/src/ser/impls.rs b/serialization/src/impls.rs similarity index 90% rename from src/ser/impls.rs rename to serialization/src/impls.rs index 21f71c3e..4a3e6410 100644 --- a/src/ser/impls.rs +++ b/serialization/src/impls.rs @@ -1,7 +1,7 @@ use bytes::Bytes; use hash::{H160, H256, H264, H512, H520}; -use ser::{Serializable, Stream, Deserializable, Reader, Error}; -use ser::compact_integer::CompactInteger; +use compact_integer::CompactInteger; +use {Serializable, Stream, Deserializable, Reader, Error}; macro_rules! impl_ser_for_hash { ($name: ident, $size: expr) => { @@ -46,7 +46,7 @@ impl Deserializable for Bytes { #[cfg(test)] mod tests { use bytes::Bytes; - use ser::{serialize, deserialize}; + use {serialize, deserialize}; #[test] fn test_bytes_deserialize() { diff --git a/src/ser/mod.rs b/serialization/src/lib.rs similarity index 69% rename from src/ser/mod.rs rename to serialization/src/lib.rs index bc95498b..72d67d26 100644 --- a/src/ser/mod.rs +++ b/serialization/src/lib.rs @@ -1,7 +1,11 @@ +extern crate byteorder; +extern crate primitives; + mod compact_integer; mod impls; pub mod reader; pub mod stream; +pub use primitives::{hash, bytes}; pub use self::reader::{Reader, Deserializable, deserialize, Error}; pub use self::stream::{Stream, Serializable, serialize}; diff --git a/src/ser/reader.rs b/serialization/src/reader.rs similarity index 98% rename from src/ser/reader.rs rename to serialization/src/reader.rs index 580ea852..687d6f79 100644 --- a/src/ser/reader.rs +++ b/serialization/src/reader.rs @@ -1,6 +1,6 @@ use std::{io, cmp}; use byteorder::{LittleEndian, ReadBytesExt}; -use ser::compact_integer::CompactInteger; +use compact_integer::CompactInteger; pub fn deserialize(buffer: &[u8]) -> Result where T: Deserializable { let mut reader = Reader::new(buffer); diff --git a/src/ser/stream.rs b/serialization/src/stream.rs similarity index 98% rename from src/ser/stream.rs rename to serialization/src/stream.rs index 810f3e00..83407ba4 100644 --- a/src/ser/stream.rs +++ b/serialization/src/stream.rs @@ -1,7 +1,7 @@ //! Stream used for serialization. use std::io::{self, Write}; use byteorder::{LittleEndian, WriteBytesExt}; -use ser::compact_integer::CompactInteger; +use compact_integer::CompactInteger; pub fn serialize(t: &Serializable) -> Vec { let mut stream = Stream::default(); diff --git a/src/lib.rs b/src/lib.rs index 3c19f543..b2fa5cb0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -19,12 +19,12 @@ extern crate secp256k1; extern crate base58; extern crate primitives; extern crate bitcrypto as crypto; +extern crate serialization as ser; pub mod chain; pub mod keys; pub mod net; pub mod script; -pub mod ser; pub mod network;