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) => { ... };
    (@find_source $field:ident, $($rest:ident),+) => { ... };
    (@get_caption $kind:ident $(, caption = $caption:expr $(, $($rest:tt)*)? )?) => { ... };
    (@unwrap_caption Config, $caption:expr) => { ... };
    (@unwrap_caption Filesystem, $caption:expr) => { ... };
    (@unwrap_caption $kind:ident) => { ... };
    (@get_tag $target:ident, $default:expr $(, $($tag:ident = $val:expr),* )?) => { ... };
    (@format_display $display:literal $(, $($param:ident),*)?) => { ... };
    (@format_display_field $field:ident) => { ... };
    (@format_display_field $field:ident . $($rest:ident).+) => { ... };
}