diff --git a/substrate/wasm-runtime/polkadot/src/joiner.rs b/substrate/wasm-runtime/polkadot/src/joiner.rs new file mode 100644 index 0000000000..99b38dec57 --- /dev/null +++ b/substrate/wasm-runtime/polkadot/src/joiner.rs @@ -0,0 +1,12 @@ +use slicable::Slicable; + +pub trait Joiner { + fn join(self, value: &T) -> Self; +} + +impl Joiner for Vec { + fn join(mut self, value: &T) -> Vec { + value.as_slice_then(|s| self.extend_from_slice(s)); + self + } +} diff --git a/substrate/wasm-runtime/polkadot/src/lib.rs b/substrate/wasm-runtime/polkadot/src/lib.rs index e64a3c2a6b..5646c7c322 100644 --- a/substrate/wasm-runtime/polkadot/src/lib.rs +++ b/substrate/wasm-runtime/polkadot/src/lib.rs @@ -6,6 +6,7 @@ extern crate runtime_support; mod endiansensitive; mod streamreader; +mod joiner; mod slicable; mod primitives; mod keyedvec; diff --git a/substrate/wasm-runtime/polkadot/src/primitives.rs b/substrate/wasm-runtime/polkadot/src/primitives.rs index a689eb7dce..44d3bc4739 100644 --- a/substrate/wasm-runtime/polkadot/src/primitives.rs +++ b/substrate/wasm-runtime/polkadot/src/primitives.rs @@ -1,4 +1,5 @@ -use streamreader::{StreamReader, Joiner}; +use streamreader::StreamReader; +use joiner::Joiner; use slicable::{Slicable, NonTrivialSlicable}; use function::Function; use runtime_support::size_of; @@ -170,7 +171,7 @@ impl Slicable for Block { #[cfg(test)] mod tests { use super::*; - use streamreader::Joiner; + use joiner::Joiner; use function::Function; #[test] diff --git a/substrate/wasm-runtime/polkadot/src/slicable.rs b/substrate/wasm-runtime/polkadot/src/slicable.rs index 0459881f0e..e220eb0f7d 100644 --- a/substrate/wasm-runtime/polkadot/src/slicable.rs +++ b/substrate/wasm-runtime/polkadot/src/slicable.rs @@ -1,5 +1,5 @@ use runtime_support::{Vec, size_of, transmute, uninitialized, slice}; -use streamreader::Joiner; +use joiner::Joiner; use endiansensitive::EndianSensitive; /// Trait that allows zero-copy read/write of value-references to/from slices in LE format. diff --git a/substrate/wasm-runtime/polkadot/src/streamreader.rs b/substrate/wasm-runtime/polkadot/src/streamreader.rs index 3bb427a1ef..33d6fd8bfd 100644 --- a/substrate/wasm-runtime/polkadot/src/streamreader.rs +++ b/substrate/wasm-runtime/polkadot/src/streamreader.rs @@ -20,17 +20,6 @@ impl<'a> StreamReader<'a> { Slicable::from_slice(slice) } } - -pub trait Joiner { - fn join(self, value: &T) -> Self; -} - -impl Joiner for Vec { - fn join(mut self, value: &T) -> Vec { - value.as_slice_then(|s| self.extend_from_slice(s)); - self - } -} /* // Not in use yet // TODO: introduce fn size_will_be(&self) -> usize; to Slicable trait and implement diff --git a/substrate/wasm-runtime/polkadot/src/system.rs b/substrate/wasm-runtime/polkadot/src/system.rs index 96169d09cc..88414fa9a1 100644 --- a/substrate/wasm-runtime/polkadot/src/system.rs +++ b/substrate/wasm-runtime/polkadot/src/system.rs @@ -74,7 +74,7 @@ pub fn set_code(new: &[u8]) { #[cfg(test)] mod tests { - use streamreader::Joiner; + use joiner::Joiner; use function::Function; use std::collections::HashMap; use runtime_support::{NoError, with_externalities, Externalities};