konst/macros/
declare_generic_const.rs
1macro_rules! declare_generic_const {
2 (
3 $(
4 $(#[$meta:meta])*
5 for[$($gen_param:tt)*]
6 $vis:vis const $name:ident [$($lt:lifetime,)* $($ty:ident),* $(; $($const:ident),*)? ]
7 :$ret:ty = $value:expr;
8 )*
9 ) => {
10 $(
11 $(#[$meta])*
12 #[allow(non_camel_case_types)]
13 $vis struct $name<$($gen_param)*>(
14 core::marker::PhantomData<(
15 $( core::marker::PhantomData<&$lt ()>, )*
16 $( core::marker::PhantomData<$ty>, )*
17 )>
18 );
19
20 impl<$($gen_param)*> $name<$($lt,)* $($ty,)* $($($const,)*)? > {
21 $vis const V: $ret = $value;
23 }
24 )*
25 };
26}