mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-25 11:45:47 +00:00
Implement TryInto for outer events (#3549)
* Implement `TryInto` for outer events * Remove invalid comment * Fix compilation
This commit is contained in:
@@ -452,31 +452,44 @@ macro_rules! impl_outer_event {
|
|||||||
$( $module_name:ident::Event $( <$generic_param:ident> )? $( { $generic_instance:ident } )?, )*;
|
$( $module_name:ident::Event $( <$generic_param:ident> )? $( { $generic_instance:ident } )?, )*;
|
||||||
) => {
|
) => {
|
||||||
$crate::paste::item! {
|
$crate::paste::item! {
|
||||||
// Workaround for https://github.com/rust-lang/rust/issues/26925 . Remove when sorted.
|
#[derive(Clone, PartialEq, Eq, $crate::codec::Encode, $crate::codec::Decode)]
|
||||||
#[derive(Clone, PartialEq, Eq, $crate::codec::Encode, $crate::codec::Decode)]
|
#[cfg_attr(feature = "std", derive(Debug))]
|
||||||
#[cfg_attr(feature = "std", derive(Debug))]
|
$(#[$attr])*
|
||||||
$(#[$attr])*
|
#[allow(non_camel_case_types)]
|
||||||
#[allow(non_camel_case_types)]
|
pub enum $name {
|
||||||
pub enum $name {
|
system($system::Event),
|
||||||
system($system::Event),
|
$(
|
||||||
$(
|
[< $module_name $(_ $generic_instance )? >](
|
||||||
[< $module_name $(_ $generic_instance )? >](
|
$module_name::Event < $( $generic_param )? $(, $module_name::$generic_instance )? >
|
||||||
$module_name::Event < $( $generic_param )? $(, $module_name::$generic_instance )? >
|
),
|
||||||
),
|
)*
|
||||||
)*
|
|
||||||
}
|
|
||||||
impl From<$system::Event> for $name {
|
|
||||||
fn from(x: $system::Event) -> Self {
|
|
||||||
$name::system(x)
|
|
||||||
}
|
}
|
||||||
}
|
impl From<$system::Event> for $name {
|
||||||
$(
|
fn from(x: $system::Event) -> Self {
|
||||||
impl From<$module_name::Event < $( $generic_param, )? $( $module_name::$generic_instance )? >> for $name {
|
$name::system(x)
|
||||||
fn from(x: $module_name::Event < $( $generic_param, )? $( $module_name::$generic_instance )? >) -> Self {
|
|
||||||
$name::[< $module_name $(_ $generic_instance )? >](x)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)*
|
$(
|
||||||
|
impl From<$module_name::Event < $( $generic_param, )? $( $module_name::$generic_instance )? >> for $name {
|
||||||
|
fn from(x: $module_name::Event < $( $generic_param, )? $( $module_name::$generic_instance )? >) -> Self {
|
||||||
|
$name::[< $module_name $(_ $generic_instance )? >](x)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
impl $crate::rstd::convert::TryInto<
|
||||||
|
$module_name::Event < $( $generic_param, )? $( $module_name::$generic_instance )? >
|
||||||
|
> for $name {
|
||||||
|
type Error = ();
|
||||||
|
|
||||||
|
fn try_into(self) -> $crate::rstd::result::Result<
|
||||||
|
$module_name::Event < $( $generic_param, )? $( $module_name::$generic_instance )? >, Self::Error
|
||||||
|
> {
|
||||||
|
match self {
|
||||||
|
Self::[< $module_name $(_ $generic_instance )? >](evt) => Ok(evt),
|
||||||
|
_ => Err(()),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)*
|
||||||
}
|
}
|
||||||
$crate::__impl_outer_event_json_metadata!(
|
$crate::__impl_outer_event_json_metadata!(
|
||||||
$runtime;
|
$runtime;
|
||||||
|
|||||||
Reference in New Issue
Block a user