Skip to main content

define_errors

Macro define_errors 

Source
macro_rules! define_errors {
    (
        $(
            $(#[$meta:meta])* $vis:vis enum $name:ident {
                $(
                   $(#[error(display = $display:literal $(, $($display_param:ident),* )?)])?
                   #[kind($kind:ident $(, $($tag:ident = $val:expr),* )?)]
                   $variant:ident $( { $($field:ident : $ftype:ty),* $(,)? } )?, )*
            }
        )*
    ) => { ... };
    (@find_source) => { ... };
    (@find_source $field:ident $(, $rest:ident)*) => { ... };
    (@find_source_match source, $source_field:ident $(, $rest:ident)*) => { ... };
    (@find_source_match $field_name:ident, $field:ident $(, $rest:ident)*) => { ... };
    (@get_caption $kind:ident) => { ... };
    (@get_caption $kind:ident, caption = $caption:expr $(, $($rest:tt)*)?) => { ... };
    (@get_caption $kind:ident, $tag:ident = $val:expr $(, $($rest:tt)*)?) => { ... };
    (@get_tag $target:ident, $default:expr) => { ... };
    (@get_tag retryable, $default:expr, retryable = $val:expr $(, $($rest:tt)*)?) => { ... };
    (@get_tag fatal, $default:expr, fatal = $val:expr $(, $($rest:tt)*)?) => { ... };
    (@get_tag status, $default:expr, status = $val:expr $(, $($rest:tt)*)?) => { ... };
    (@get_tag exit, $default:expr, exit = $val:expr $(, $($rest:tt)*)?) => { ... };
    (@get_tag $target:ident, $default:expr, $tag:ident = $val:expr $(, $($rest:tt)*)?) => { ... };
    (@format_display $display:literal) => { ... };
    (@format_display $display:literal, $($param:ident),+) => { ... };
    (@format_display_field $field:ident) => { ... };
    (@format_display_field $field:ident . $($rest:ident).+) => { ... };
}