| Crates.io | generics2 |
| lib.rs | generics2 |
| version | 0.3.3 |
| created_at | 2022-01-23 16:48:42.189312+00 |
| updated_at | 2022-01-23 16:48:42.189312+00 |
| description | Provides macros for parsing generics (with optional where clause) in `macro_rules!` - enhanced fork of generics. |
| homepage | |
| repository | https://github.com/lyphyser/generics2 |
| max_upload_size | |
| id | 519756 |
| size | 51,694 |
Provides macros for parsing generics and where clauses in macro_rules!.
pub trait TheTrait { }
#[doc(hidden)]
pub use generics2::parse as generics_parse;
#[doc(hidden)]
pub use std::compile_error as std_compile_error;
#[macro_export]
macro_rules! impl_the_trait {
(
$name:ident $($token:tt)*
) => {
$crate::generics_parse! {
$crate::impl_the_trait {
@impl $name
}
$($token)*
}
};
(
@impl $name:ident [$($g:tt)*] [$($r:tt)*] [$($w:tt)*]
) => {
impl $($g)* $crate::TheTrait for $name $($r)* $($w)* { }
};
(
@impl $name:ident [$($g:tt)*] [$($r:tt)*] [$($w:tt)*] $($token:tt)+
) => {
$crate::std_compile_error!(
"invalid input, allowed input is '$name $( < $generics > $(where $where_clause)? )?'"
);
};
}