mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-11 09:31:12 +00:00
Generated
+1
@@ -2891,6 +2891,7 @@ dependencies = [
|
||||
"serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_json 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"substrate-codec 0.1.0",
|
||||
"substrate-codec-derive 0.1.0",
|
||||
"substrate-primitives 0.1.0",
|
||||
"substrate-runtime-io 0.1.0",
|
||||
"substrate-runtime-std 0.1.0",
|
||||
|
||||
@@ -16,6 +16,7 @@ substrate-codec = { path = "../codec", default_features = false }
|
||||
[dev-dependencies]
|
||||
pretty_assertions = "0.5.1"
|
||||
serde_json = { version = "1.0" }
|
||||
substrate-codec-derive = { path = "../../substrate/codec/derive" }
|
||||
|
||||
[features]
|
||||
default = ["std"]
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
#[macro_export]
|
||||
macro_rules! impl_outer_event {
|
||||
($(#[$attr:meta])* pub enum $name:ident for $runtime:ident { $( $module:ident ),* }) => {
|
||||
// Workaround for https://github.com/rust-lang/rust/issues/26925 . Remove when sorted.
|
||||
#[derive(Clone, PartialEq, Eq, Encode, Decode)]
|
||||
#[cfg_attr(feature = "std", derive(Debug, Serialize, Deserialize))]
|
||||
$(#[$attr])*
|
||||
#[allow(non_camel_case_types)]
|
||||
pub enum $name {
|
||||
system(system::Event),
|
||||
$(
|
||||
$module($module::Event<$runtime>),
|
||||
)*
|
||||
}
|
||||
impl From<system::Event> for $name {
|
||||
fn from(x: system::Event) -> Self {
|
||||
$name::system(x)
|
||||
}
|
||||
}
|
||||
$(
|
||||
impl From<$module::Event<$runtime>> for $name {
|
||||
fn from(x: $module::Event<$runtime>) -> Self {
|
||||
$name::$module(x)
|
||||
}
|
||||
}
|
||||
)*
|
||||
__impl_outer_event_json_metadata!($runtime; $name; $( $module )*);
|
||||
}
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
#[doc(hidden)]
|
||||
macro_rules! __impl_outer_event_json_metadata {
|
||||
(
|
||||
$runtime:ident;
|
||||
$event_name:ident;
|
||||
$( $module:ident )*
|
||||
) => {
|
||||
impl $runtime {
|
||||
pub fn outer_event_json_metadata() -> &'static str {
|
||||
concat!(r#"{ "name": ""#, stringify!($event_name), r#"", "items": { "#,
|
||||
r#""system": "system::Event""#,
|
||||
$(concat!(", \"", stringify!($module), r#"": ""#,
|
||||
stringify!($module), "::Event<", stringify!($runtime), r#">""#),)*
|
||||
" } }")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use serde;
|
||||
use serde_json;
|
||||
|
||||
mod system {
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Encode, Decode, Deserialize, Serialize)]
|
||||
pub struct Event;
|
||||
}
|
||||
|
||||
mod event_module {
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Encode, Decode, Deserialize, Serialize)]
|
||||
pub struct Event<T> {
|
||||
t: T,
|
||||
}
|
||||
}
|
||||
|
||||
mod event_module2 {
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Encode, Decode, Deserialize, Serialize)]
|
||||
pub struct Event<T> {
|
||||
t: T,
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Encode, Decode, Deserialize, Serialize)]
|
||||
pub struct TestRuntime;
|
||||
|
||||
impl_outer_event! {
|
||||
pub enum TestEvent for TestRuntime {
|
||||
event_module, event_module2
|
||||
}
|
||||
}
|
||||
|
||||
const EXPECTED_METADATA: &str = concat!(
|
||||
r#"{ "name": "TestEvent", "items": { "#,
|
||||
r#""system": "system::Event", "#,
|
||||
r#""event_module": "event_module::Event<TestRuntime>", "#,
|
||||
r#""event_module2": "event_module2::Event<TestRuntime>" "#,
|
||||
r#"} }"#
|
||||
);
|
||||
|
||||
#[test]
|
||||
fn outer_event_json_metadata() {
|
||||
let metadata = TestRuntime::outer_event_json_metadata();
|
||||
assert_eq!(EXPECTED_METADATA, metadata);
|
||||
let _: serde::de::IgnoredAny =
|
||||
serde_json::from_str(metadata).expect("Is valid json syntax");
|
||||
}
|
||||
}
|
||||
@@ -33,6 +33,9 @@ extern crate pretty_assertions;
|
||||
extern crate serde_derive;
|
||||
#[cfg(test)]
|
||||
extern crate serde_json;
|
||||
#[cfg(test)]
|
||||
#[macro_use]
|
||||
extern crate substrate_codec_derive;
|
||||
|
||||
#[doc(hidden)]
|
||||
pub extern crate substrate_codec as codec;
|
||||
@@ -42,6 +45,8 @@ pub use self::storage::generator::Storage as GenericStorage;
|
||||
pub mod dispatch;
|
||||
pub mod storage;
|
||||
mod hashable;
|
||||
#[macro_use]
|
||||
mod event;
|
||||
|
||||
pub use self::storage::{StorageVec, StorageList, StorageValue, StorageMap};
|
||||
pub use self::hashable::Hashable;
|
||||
@@ -94,35 +99,6 @@ macro_rules! assert_ok {
|
||||
}
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! impl_outer_event {
|
||||
($(#[$attr:meta])* pub enum $name:ident for $trait:ident { $( $module:ident ),* }) => {
|
||||
// Workaround for https://github.com/rust-lang/rust/issues/26925 . Remove when sorted.
|
||||
#[derive(Clone, PartialEq, Eq, Encode, Decode)]
|
||||
#[cfg_attr(feature = "std", derive(Debug, Serialize, Deserialize))]
|
||||
$(#[$attr])*
|
||||
#[allow(non_camel_case_types)]
|
||||
pub enum $name {
|
||||
system(system::Event),
|
||||
$(
|
||||
$module($module::Event<$trait>),
|
||||
)*
|
||||
}
|
||||
impl From<system::Event> for $name {
|
||||
fn from(x: system::Event) -> Self {
|
||||
$name::system(x)
|
||||
}
|
||||
}
|
||||
$(
|
||||
impl From<$module::Event<$trait>> for $name {
|
||||
fn from(x: $module::Event<$trait>) -> Self {
|
||||
$name::$module(x)
|
||||
}
|
||||
}
|
||||
)*
|
||||
}
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! impl_outer_log {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user