File tree Expand file tree Collapse file tree 5 files changed +11
-5
lines changed Expand file tree Collapse file tree 5 files changed +11
-5
lines changed Original file line number Diff line number Diff line change @@ -14,7 +14,7 @@ pub struct Field {
14
14
15
15
impl Field {
16
16
pub fn parse ( raw : & syn:: Field , rename_all : Option < RenameRule > ) -> Result < Field , Error > {
17
- let overrides = Overrides :: extract ( & raw . attrs) ?;
17
+ let overrides = Overrides :: extract ( & raw . attrs, false ) ?;
18
18
let ident = raw. ident . as_ref ( ) . unwrap ( ) . clone ( ) ;
19
19
20
20
// field level name override takes precendence over container level rename_all override
Original file line number Diff line number Diff line change @@ -18,7 +18,7 @@ impl Variant {
18
18
) )
19
19
}
20
20
}
21
- let overrides = Overrides :: extract ( & raw . attrs) ?;
21
+ let overrides = Overrides :: extract ( & raw . attrs, false ) ?;
22
22
23
23
// variant level name override takes precendence over container level rename_all override
24
24
let name = overrides. name . unwrap_or_else ( || match rename_all {
Original file line number Diff line number Diff line change @@ -15,7 +15,7 @@ use crate::enums::Variant;
15
15
use crate :: overrides:: Overrides ;
16
16
17
17
pub fn expand_derive_fromsql ( input : DeriveInput ) -> Result < TokenStream , Error > {
18
- let overrides = Overrides :: extract ( & input. attrs ) ?;
18
+ let overrides = Overrides :: extract ( & input. attrs , true ) ?;
19
19
20
20
if overrides. name . is_some ( ) && overrides. transparent {
21
21
return Err ( Error :: new_spanned (
Original file line number Diff line number Diff line change @@ -10,7 +10,7 @@ pub struct Overrides {
10
10
}
11
11
12
12
impl Overrides {
13
- pub fn extract ( attrs : & [ Attribute ] ) -> Result < Overrides , Error > {
13
+ pub fn extract ( attrs : & [ Attribute ] , container_attr : bool ) -> Result < Overrides , Error > {
14
14
let mut overrides = Overrides {
15
15
name : None ,
16
16
rename_all : None ,
@@ -34,6 +34,12 @@ impl Overrides {
34
34
Meta :: NameValue ( meta) => {
35
35
let name_override = meta. path . is_ident ( "name" ) ;
36
36
let rename_all_override = meta. path . is_ident ( "rename_all" ) ;
37
+ if !container_attr && rename_all_override {
38
+ return Err ( Error :: new_spanned (
39
+ & meta. path ,
40
+ "rename_all is a container attribute" ,
41
+ ) ) ;
42
+ }
37
43
if !name_override && !rename_all_override {
38
44
return Err ( Error :: new_spanned ( & meta. path , "unknown override" ) ) ;
39
45
}
Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ use crate::enums::Variant;
13
13
use crate :: overrides:: Overrides ;
14
14
15
15
pub fn expand_derive_tosql ( input : DeriveInput ) -> Result < TokenStream , Error > {
16
- let overrides = Overrides :: extract ( & input. attrs ) ?;
16
+ let overrides = Overrides :: extract ( & input. attrs , true ) ?;
17
17
18
18
if overrides. name . is_some ( ) && overrides. transparent {
19
19
return Err ( Error :: new_spanned (
You can’t perform that action at this time.
0 commit comments