boluo-core 0.1.0

boluo的核心类型和特征
Documentation
#[macro_export]
macro_rules! name {
    () => {};
    ($(#[$attr:meta])* $ident:ident = $name:expr; $($tt:tt)*) => {
        $crate::name! { @imp $(#[$attr])* () $ident = $name; }
        $crate::name! { $($tt)* }
    };
    ($(#[$attr:meta])* pub $ident:ident = $name:expr; $($tt:tt)*) => {
        $crate::name! { @imp $(#[$attr])* (pub) $ident = $name; }
        $crate::name! { $($tt)* }
    };
    ($(#[$attr:meta])* pub ($($vis:tt)*) $ident:ident = $name:expr; $($tt:tt)*) => {
        $crate::name! { @imp $(#[$attr])* (pub ($($vis)*)) $ident = $name; }
        $crate::name! { $($tt)* }
    };
    (@imp $(#[$attr:meta])* ($($vis:tt)*) $ident:ident = $name:expr;) => {
        $(#[$attr])*
        $($vis)* struct $ident;

        impl $crate::extract::Name for $ident {
            fn name() -> &'static str {
                $name
            }
        }
    };
}