| use paste::paste; |
| use paste_test_suite::paste_test; |
| |
| #[test] |
| fn test_attr() { |
| paste! { |
| #[paste_test(k = "val" "ue")] |
| struct A; |
| |
| #[paste_test_suite::paste_test(k = "val" "ue")] |
| struct B; |
| |
| #[::paste_test_suite::paste_test(k = "val" "ue")] |
| struct C; |
| |
| #[paste_test(k = "va" [<l u>] e)] |
| struct D; |
| } |
| |
| let _ = A; |
| let _ = B; |
| let _ = C; |
| let _ = D; |
| } |
| |
| #[test] |
| fn test_paste_cfg() { |
| macro_rules! m { |
| ($ret:ident, $width:expr) => { |
| paste! { |
| #[cfg(any(feature = "protocol_feature_" $ret:snake, target_pointer_width = "" $width))] |
| fn new() -> $ret { todo!() } |
| } |
| }; |
| } |
| |
| struct Paste; |
| |
| #[cfg(target_pointer_width = "64")] |
| m!(Paste, 64); |
| #[cfg(target_pointer_width = "32")] |
| m!(Paste, 32); |
| |
| let _ = new; |
| } |