1#[macro_export]
2macro_rules! constant_internal {
3 ( $( $part:ident )+ _ $next:ident $( $extra:ident )+ ) => {
4 constant_internal!($( $part )* $next _ $( $extra )*);
5 };
6 ( $( $part:ident )+ _ $last:ident ) => {
7 paste!{
8 #[doc = concat!($( stringify!($part), "-", )* stringify!($last))]
9 pub const [< $( $part _ )* $last >]: &'static str = concat!($( stringify!($part), "-", )* stringify!($last));
10 }
11 };
12 ( $( $part:ident )+ _ $last:literal ) => {
13 paste!{
14 #[doc = concat!($( stringify!($part), "-", )* $last)]
15 pub const [< $( $part _ )* $last >]: &'static str = concat!($( stringify!($part), "-", )* $last);
16 }
17 };
18}
19
20#[macro_export]
21macro_rules! constant {
22 ( $last:ident ) => {
23 #[doc = concat!(stringify!($last))]
24 pub const $last: &'static str = concat!(stringify!($last));
25 };
26 ( $first:ident $( $extra:ident )+ ) => {
27 constant_internal!($first _ $( $extra )*);
28 };
29 ( $( $part:ident )+ $last:literal ) => {
30 constant_internal!($( $part )* _ $last);
31 };
32}