@@ -9,7 +9,8 @@ fn test() {
9
9
#[ derive( Attribute ) ]
10
10
#[ attribute( ident = "test" ) ]
11
11
struct Test {
12
- // a: u8,
12
+ #[ attribute( positional) ]
13
+ a : u8 ,
13
14
b : LitStr ,
14
15
c : String ,
15
16
oc : Option < String > ,
@@ -23,9 +24,10 @@ fn test() {
23
24
}
24
25
25
26
let parsed = Test :: from_attributes ( [
26
- parse_quote ! ( #[ test( b="hi" , c="ho" , oc="xD" , d=( ) , e=if true { "a" } else { "b" } , f= [ ( ) , Debug ] , g, i = smth:: hello + 24 /3 'a' , b = c) ] ) ,
27
+ parse_quote ! ( #[ test( 8 , b="hi" , c="ho" , oc="xD" , d=( ) , e=if true { "a" } else { "b" } , f= [ ( ) , Debug ] , g, i = smth:: hello + 24 /3 'a' , b = c) ] ) ,
27
28
] . iter ( ) )
28
29
. unwrap ( ) ;
30
+ assert_eq ! ( parsed. a, 8 ) ;
29
31
assert_eq ! ( parsed. b. value( ) , "hi" ) ;
30
32
assert_eq ! ( parsed. c, "ho" ) ;
31
33
assert_eq ! ( parsed. oc, Some ( "xD" . to_owned( ) ) ) ;
@@ -38,9 +40,10 @@ fn test() {
38
40
assert_eq ! ( parsed. i. to_string( ) , "smth :: hello + 24 / 3 'a' , b = c" ) ;
39
41
40
42
let parsed = Test :: from_args (
41
- quote ! ( b="hi" , c="ho" , oc="xD" , d=( ) , e=if true { "a" } else { "b" } , f= [ ( ) , Debug ] , g, i = smth:: hello + 24 /3 'a' , b = c)
43
+ quote ! ( 8 , b="hi" , c="ho" , oc="xD" , d=( ) , e=if true { "a" } else { "b" } , f= [ ( ) , Debug ] , g, i = smth:: hello + 24 /3 'a' , b = c)
42
44
)
43
45
. unwrap ( ) ;
46
+ assert_eq ! ( parsed. a, 8 ) ;
44
47
assert_eq ! ( parsed. b. value( ) , "hi" ) ;
45
48
assert_eq ! ( parsed. c, "ho" ) ;
46
49
assert_eq ! ( parsed. oc, Some ( "xD" . to_owned( ) ) ) ;
@@ -54,10 +57,11 @@ fn test() {
54
57
55
58
let mut attrs = vec ! [
56
59
parse_quote!( #[ something] ) ,
57
- parse_quote!( #[ test( b="hi" , c="ho" , oc="xD" , d=( ) , e=if true { "a" } else { "b" } , f= [ ( ) , Debug ] , g, i = smth:: hello + 24 /3 'a' , b = c) ] ) ,
60
+ parse_quote!( #[ test( 8 , b="hi" , c="ho" , oc="xD" , d=( ) , e=if true { "a" } else { "b" } , f= [ ( ) , Debug ] , g, i = smth:: hello + 24 /3 'a' , b = c) ] ) ,
58
61
parse_quote!( #[ another( smth) ] ) ,
59
62
] ;
60
63
let parsed = Test :: remove_attributes ( & mut attrs) . unwrap ( ) ;
64
+ assert_eq ! ( parsed. a, 8 ) ;
61
65
assert_eq ! ( parsed. b. value( ) , "hi" ) ;
62
66
assert_eq ! ( parsed. c, "ho" ) ;
63
67
assert_eq ! ( parsed. oc, Some ( "xD" . to_owned( ) ) ) ;
@@ -71,9 +75,10 @@ fn test() {
71
75
assert_eq ! ( attrs. len( ) , 2 ) ;
72
76
73
77
let parsed: Test = parse2 (
74
- quote ! ( b="hi" , c="ho" , oc="xD" , d=( ) , e=if true { "a" } else { "b" } , f= [ ( ) , Debug ] , g, i = smth:: hello + 24 /3 'a' , b = c)
78
+ quote ! ( 8 , b="hi" , c="ho" , oc="xD" , d=( ) , e=if true { "a" } else { "b" } , f= [ ( ) , Debug ] , g, i = smth:: hello + 24 /3 'a' , b = c)
75
79
)
76
80
. unwrap ( ) ;
81
+ assert_eq ! ( parsed. a, 8 ) ;
77
82
assert_eq ! ( parsed. b. value( ) , "hi" ) ;
78
83
assert_eq ! ( parsed. c, "ho" ) ;
79
84
assert_eq ! ( parsed. oc, Some ( "xD" . to_owned( ) ) ) ;
0 commit comments