You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
879 B
46 lines
879 B
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;
|
|
}
|