Macro define_errors

Source
macro_rules! define_errors {
    (
        $(
            $(#[$meta:meta])* $vis:vis enum $name:ident {
                $( #[kind($kind:ident $(, $($tag:ident = $val:expr),* )?)]
                   $variant:ident $( { $($field:ident : $ftype:ty),* $(,)? } )?, )*
            }
        )*
    ) => { ... };
    (@find_source $($field: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),* )?) => { ... };
}