@@ -7,8 +7,8 @@ use syn::punctuated::Punctuated;
7
7
use syn:: spanned:: Spanned ;
8
8
use syn:: token:: { Comma , RArrow } ;
9
9
use syn:: {
10
- AttrStyle , Attribute , Error , Expr , ExprTuple , FnArg , GenericParam , Ident , ItemFn , Lit , LitFloat , LitInt , LitStr , Meta , Pat , PatIdent , PatType , Path , ReturnType , Type , TypeParam , WhereClause ,
11
- parse_quote,
10
+ AttrStyle , Attribute , Error , Expr , ExprTuple , FnArg , GenericParam , Ident , ItemFn , Lit , LitFloat , LitInt , LitStr , Meta , Pat , PatIdent , PatType , Path , ReturnType , Type , TypeParam , Visibility ,
11
+ WhereClause , parse_quote,
12
12
} ;
13
13
14
14
use crate :: codegen:: generate_node_code;
@@ -22,6 +22,7 @@ pub(crate) struct Implementation {
22
22
23
23
#[ derive( Debug ) ]
24
24
pub ( crate ) struct ParsedNodeFn {
25
+ pub ( crate ) vis : Visibility ,
25
26
pub ( crate ) attributes : NodeFnAttributes ,
26
27
pub ( crate ) fn_name : Ident ,
27
28
pub ( crate ) struct_name : Ident ,
@@ -263,6 +264,7 @@ fn parse_node_fn(attr: TokenStream2, item: TokenStream2) -> syn::Result<ParsedNo
263
264
let attributes = syn:: parse2 :: < NodeFnAttributes > ( attr. clone ( ) ) . map_err ( |e| Error :: new ( e. span ( ) , format ! ( "Failed to parse node_fn attributes: {}" , e) ) ) ?;
264
265
let input_fn = syn:: parse2 :: < ItemFn > ( item. clone ( ) ) . map_err ( |e| Error :: new ( e. span ( ) , format ! ( "Failed to parse function: {}. Make sure it's a valid Rust function." , e) ) ) ?;
265
266
267
+ let vis = input_fn. vis ;
266
268
let fn_name = input_fn. sig . ident . clone ( ) ;
267
269
let struct_name = format_ident ! ( "{}" , fn_name. to_string( ) . to_case( Case :: Pascal ) ) ;
268
270
let mod_name = fn_name. clone ( ) ;
@@ -297,6 +299,7 @@ fn parse_node_fn(attr: TokenStream2, item: TokenStream2) -> syn::Result<ParsedNo
297
299
. fold ( String :: new ( ) , |acc, b| acc + & b + "\n " ) ;
298
300
299
301
Ok ( ParsedNodeFn {
302
+ vis,
300
303
attributes,
301
304
fn_name,
302
305
struct_name,
@@ -748,6 +751,7 @@ mod tests {
748
751
749
752
let parsed = parse_node_fn ( attr, input) . unwrap ( ) ;
750
753
let expected = ParsedNodeFn {
754
+ vis : Visibility :: Inherited ,
751
755
attributes : NodeFnAttributes {
752
756
category : Some ( parse_quote ! ( "Math: Arithmetic" ) ) ,
753
757
display_name : None ,
@@ -808,6 +812,7 @@ mod tests {
808
812
809
813
let parsed = parse_node_fn ( attr, input) . unwrap ( ) ;
810
814
let expected = ParsedNodeFn {
815
+ vis : Visibility :: Inherited ,
811
816
attributes : NodeFnAttributes {
812
817
category : Some ( parse_quote ! ( "General" ) ) ,
813
818
display_name : None ,
@@ -879,6 +884,7 @@ mod tests {
879
884
880
885
let parsed = parse_node_fn ( attr, input) . unwrap ( ) ;
881
886
let expected = ParsedNodeFn {
887
+ vis : Visibility :: Inherited ,
882
888
attributes : NodeFnAttributes {
883
889
category : Some ( parse_quote ! ( "Vector: Shape" ) ) ,
884
890
display_name : None ,
@@ -935,6 +941,7 @@ mod tests {
935
941
936
942
let parsed = parse_node_fn ( attr, input) . unwrap ( ) ;
937
943
let expected = ParsedNodeFn {
944
+ vis : Visibility :: Inherited ,
938
945
attributes : NodeFnAttributes {
939
946
category : Some ( parse_quote ! ( "Raster: Adjustment" ) ) ,
940
947
display_name : None ,
@@ -1003,6 +1010,7 @@ mod tests {
1003
1010
1004
1011
let parsed = parse_node_fn ( attr, input) . unwrap ( ) ;
1005
1012
let expected = ParsedNodeFn {
1013
+ vis : Visibility :: Inherited ,
1006
1014
attributes : NodeFnAttributes {
1007
1015
category : Some ( parse_quote ! ( "Math: Arithmetic" ) ) ,
1008
1016
display_name : None ,
@@ -1059,6 +1067,7 @@ mod tests {
1059
1067
1060
1068
let parsed = parse_node_fn ( attr, input) . unwrap ( ) ;
1061
1069
let expected = ParsedNodeFn {
1070
+ vis : Visibility :: Inherited ,
1062
1071
attributes : NodeFnAttributes {
1063
1072
category : Some ( parse_quote ! ( "IO" ) ) ,
1064
1073
display_name : None ,
@@ -1115,6 +1124,7 @@ mod tests {
1115
1124
1116
1125
let parsed = parse_node_fn ( attr, input) . unwrap ( ) ;
1117
1126
let expected = ParsedNodeFn {
1127
+ vis : Visibility :: Inherited ,
1118
1128
attributes : NodeFnAttributes {
1119
1129
category : Some ( parse_quote ! ( "Custom" ) ) ,
1120
1130
display_name : Some ( parse_quote ! ( "CustomNode2" ) ) ,
0 commit comments