Macro zerror
Source macro_rules! zerror {
(@inner
$(#[$doc:meta])*
$error_name:ident
[$($(#[$variant1_doc:meta])* $variant1_type:ident as $variant1_ctor:ident counter $counter1_name:path
{ $($(#[$field1_doc:meta])* $field1_name:ident : $field1_type:ty),* };)*]
[$($(#[$variant2_doc:meta])* $variant2_type:ident from $(#[$from2_doc:meta])* $from2_type:ty as $variant2_ctor:ident counter $counter2_name:path;)*]
) => { ... };
(@inner
$(#[$doc:meta])*
$error_name:ident
[$($(#[$variant1_doc:meta])* $variant1_type:ident as $variant1_ctor:ident counter $counter1_name:path
{ $($(#[$field1_doc:meta])* $field1_name:ident : $field1_type:ty),* };)*]
[$($(#[$variant2_doc:meta])* $variant2_type:ident from $(#[$from2_doc:meta])* $from2_type:ty as $variant2_ctor:ident counter $counter2_name:path;)*]
$(#[$variant_doc:meta])* $variant_type:ident from $(#[$from_doc:meta])* $from_type:ty as $variant_ctor:ident counter $counter_name:path,
$($tt:tt)*
) => { ... };
(@inner
$(#[$doc:meta])*
$error_name:ident
[$($(#[$variant1_doc:meta])* $variant1_type:ident as $variant1_ctor:ident counter $counter1_name:path
{ $($(#[$field1_doc:meta])* $field1_name:ident : $field1_type:ty),* };)*]
[$($(#[$variant2_doc:meta])* $variant2_type:ident from $(#[$from2_doc:meta])* $from2_type:ty as $variant2_ctor:ident counter $counter2_name:path;)*]
$(#[$variant_doc:meta])* $variant_type:ident from $(#[$from_doc:meta])* $from_type:ty as $variant_ctor:ident,
$($tt:tt)*
) => { ... };
(@inner
$(#[$doc:meta])*
$error_name:ident
[$($(#[$variant1_doc:meta])* $variant1_type:ident as $variant1_ctor:ident counter $counter1_name:path
{ $($(#[$field1_doc:meta])* $field1_name:ident : $field1_type:ty),* };)*]
[$($(#[$variant2_doc:meta])* $variant2_type:ident from $(#[$from2_doc:meta])* $from2_type:ty
as $variant2_ctor:ident counter $counter2_name:path;)*]
$(#[$variant_doc:meta])* $variant_type:ident as $variant_ctor:ident counter $counter_name:path
{ $($(#[$field_doc:meta])* $field_name:ident : $field_type:ty,)* },
$($tt:tt)*
) => { ... };
(@inner
$(#[$doc:meta])*
$error_name:ident
[$($(#[$variant1_doc:meta])* $variant1_type:ident as $variant1_ctor:ident counter $counter1_name:path
{ $($(#[$field1_doc:meta])* $field1_name:ident : $field1_type:ty),* };)*]
[$($(#[$variant2_doc:meta])* $variant2_type:ident from $(#[$from2_doc:meta])* $from2_type:ty
as $variant2_ctor:ident counter $counter2_name:path;)*]
$(#[$variant_doc:meta])* $variant_type:ident as $variant_ctor:ident
{ $($(#[$field_doc:meta])* $field_name:ident : $field_type:ty,)* },
$($tt:tt)*
) => { ... };
($(#[$doc:meta])* $error_name:ident { $($tt:tt)* }) => { ... };
}