From 652b5705d62951a1660b5e22bb91c2abe04fce73 Mon Sep 17 00:00:00 2001 From: Gav Date: Wed, 7 Feb 2018 21:30:54 +0100 Subject: [PATCH] Generate dispatch code from macro impl_stubs. --- substrate/cli/src/lib.rs | 11 ----------- substrate/polkadot-executor/src/lib.rs | 7 +------ substrate/runtime-io/with_std.rs | 11 ++++++++++- 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/substrate/cli/src/lib.rs b/substrate/cli/src/lib.rs index d18c40b013..04c7700c28 100644 --- a/substrate/cli/src/lib.rs +++ b/substrate/cli/src/lib.rs @@ -32,9 +32,6 @@ extern crate polkadot_primitives; extern crate polkadot_executor as executor; extern crate native_runtime; -#[cfg(test)] -#[macro_use] -extern crate hex_literal; #[macro_use] extern crate clap; #[macro_use] @@ -42,14 +39,6 @@ extern crate error_chain; #[macro_use] extern crate log; -// TODO: move into own crate. -#[cfg(test)] -macro_rules! map { - ($( $name:expr => $value:expr ),*) => ( - vec![ $( ( $name, $value ) ),* ].into_iter().collect() - ) -} - pub mod error; /// Parse command line arguments and start the node. diff --git a/substrate/polkadot-executor/src/lib.rs b/substrate/polkadot-executor/src/lib.rs index 567559adcf..51b75e3273 100644 --- a/substrate/polkadot-executor/src/lib.rs +++ b/substrate/polkadot-executor/src/lib.rs @@ -39,12 +39,7 @@ impl NativeExecutionDispatch for LocalNativeExecutionDispatch { } fn dispatch(method: &str, data: &[u8]) -> Option> { - match method { - "execute_block" => Some(runtime::execute_block(data)), - "execute_transaction" => Some(runtime::execute_transaction(data)), - "finalise_block" => Some(runtime::finalise_block(data)), - _ => None, - } + runtime::dispatch(method, data) } } diff --git a/substrate/runtime-io/with_std.rs b/substrate/runtime-io/with_std.rs index 63db356cbd..04ecda1690 100644 --- a/substrate/runtime-io/with_std.rs +++ b/substrate/runtime-io/with_std.rs @@ -131,7 +131,16 @@ pub fn print(value: T) { #[macro_export] macro_rules! impl_stubs { - ($( $name:ident ),*) => {} + ($( $name:ident ),*) => { + pub fn dispatch(method: &str, data: &[u8]) -> Option> { + match method { + $( + stringify!($name) => Some($name(data)), + )* + _ => None, + } + } + } } #[cfg(test)]