@@ -724,18 +724,24 @@ mod tests {
724724 for ( parsed_field, expected_field) in parsed. fields . iter ( ) . zip ( expected. fields . iter ( ) ) {
725725 match ( parsed_field, expected_field) {
726726 (
727- ParsedField :: Regular {
727+ ParsedField {
728728 pat_ident : p_name,
729- ty : p_ty,
730- exposed : p_exp,
731- value_source : p_default,
729+ ty : ParsedFieldType :: Regular ( RegularParsedField {
730+ ty : p_ty,
731+ exposed : p_exp,
732+ value_source : p_default,
733+ ..
734+ } ) ,
732735 ..
733736 } ,
734- ParsedField :: Regular {
737+ ParsedField {
735738 pat_ident : e_name,
736- ty : e_ty,
737- exposed : e_exp,
738- value_source : e_default,
739+ ty : ParsedFieldType :: Regular ( RegularParsedField {
740+ ty : e_ty,
741+ exposed : e_exp,
742+ value_source : e_default,
743+ ..
744+ } ) ,
739745 ..
740746 } ,
741747 ) => {
@@ -754,16 +760,22 @@ mod tests {
754760 assert_eq ! ( format!( "{:?}" , p_ty) , format!( "{:?}" , e_ty) ) ;
755761 }
756762 (
757- ParsedField :: Node {
763+ ParsedField {
758764 pat_ident : p_name,
759- input_type : p_input,
760- output_type : p_output,
765+ ty : ParsedFieldType :: Node ( NodeParsedField {
766+ input_type : p_input,
767+ output_type : p_output,
768+ ..
769+ } ) ,
761770 ..
762771 } ,
763- ParsedField :: Node {
772+ ParsedField {
764773 pat_ident : e_name,
765- input_type : e_input,
766- output_type : e_output,
774+ ty : ParsedFieldType :: Node ( NodeParsedField {
775+ input_type : e_input,
776+ output_type : e_output,
777+ ..
778+ } ) ,
767779 ..
768780 } ,
769781 ) => {
@@ -811,22 +823,24 @@ mod tests {
811823 } ,
812824 output_type : parse_quote ! ( f64 ) ,
813825 is_async : false ,
814- fields : vec ! [ ParsedField :: Regular {
826+ fields : vec ! [ ParsedField {
815827 pat_ident: pat_ident( "b" ) ,
816828 name: None ,
817829 description: String :: new( ) ,
818830 widget_override: ParsedWidgetOverride :: None ,
819- ty: parse_quote!( f64 ) ,
820- exposed: false ,
821- value_source: ParsedValueSource :: None ,
822- number_soft_min: None ,
823- number_soft_max: None ,
824- number_hard_min: None ,
825- number_hard_max: None ,
826- number_mode_range: None ,
831+ ty: ParsedFieldType :: Regular ( RegularParsedField {
832+ ty: parse_quote!( f64 ) ,
833+ exposed: false ,
834+ value_source: ParsedValueSource :: None ,
835+ number_soft_min: None ,
836+ number_soft_max: None ,
837+ number_hard_min: None ,
838+ number_hard_max: None ,
839+ number_mode_range: None ,
840+ implementations: Punctuated :: new( ) ,
841+ } ) ,
827842 number_display_decimal_places: None ,
828843 number_step: None ,
829- implementations: Punctuated :: new( ) ,
830844 unit: None ,
831845 } ] ,
832846 body : TokenStream2 :: new ( ) ,
@@ -875,34 +889,38 @@ mod tests {
875889 output_type : parse_quote ! ( T ) ,
876890 is_async : false ,
877891 fields : vec ! [
878- ParsedField :: Node {
892+ ParsedField {
879893 pat_ident: pat_ident( "transform_target" ) ,
880894 name: None ,
881895 description: String :: new( ) ,
882896 widget_override: ParsedWidgetOverride :: None ,
883- input_type: parse_quote!( Footprint ) ,
884- output_type: parse_quote!( T ) ,
897+ ty: ParsedFieldType :: Node ( NodeParsedField {
898+ input_type: parse_quote!( Footprint ) ,
899+ output_type: parse_quote!( T ) ,
900+ implementations: Punctuated :: new( ) ,
901+ } ) ,
885902 number_display_decimal_places: None ,
886903 number_step: None ,
887- implementations: Punctuated :: new( ) ,
888904 unit: None ,
889905 } ,
890- ParsedField :: Regular {
906+ ParsedField {
891907 pat_ident: pat_ident( "translate" ) ,
892908 name: None ,
893909 description: String :: new( ) ,
894910 widget_override: ParsedWidgetOverride :: None ,
895- ty: parse_quote!( DVec2 ) ,
896- exposed: false ,
897- value_source: ParsedValueSource :: None ,
898- number_soft_min: None ,
899- number_soft_max: None ,
900- number_hard_min: None ,
901- number_hard_max: None ,
902- number_mode_range: None ,
911+ ty: ParsedFieldType :: Regular ( RegularParsedField {
912+ ty: parse_quote!( DVec2 ) ,
913+ exposed: false ,
914+ value_source: ParsedValueSource :: None ,
915+ number_soft_min: None ,
916+ number_soft_max: None ,
917+ number_hard_min: None ,
918+ number_hard_max: None ,
919+ number_mode_range: None ,
920+ implementations: Punctuated :: new( ) ,
921+ } ) ,
903922 number_display_decimal_places: None ,
904923 number_step: None ,
905- implementations: Punctuated :: new( ) ,
906924 unit: None ,
907925 } ,
908926 ] ,
@@ -948,22 +966,24 @@ mod tests {
948966 } ,
949967 output_type : parse_quote ! ( Vector ) ,
950968 is_async : false ,
951- fields : vec ! [ ParsedField :: Regular {
969+ fields : vec ! [ ParsedField {
952970 pat_ident: pat_ident( "radius" ) ,
953971 name: None ,
954972 description: String :: new( ) ,
955973 widget_override: ParsedWidgetOverride :: None ,
956- ty: parse_quote!( f64 ) ,
957- exposed: false ,
958- value_source: ParsedValueSource :: Default ( quote!( 50. ) ) ,
959- number_soft_min: None ,
960- number_soft_max: None ,
961- number_hard_min: None ,
962- number_hard_max: None ,
963- number_mode_range: None ,
974+ ty: ParsedFieldType :: Regular ( RegularParsedField {
975+ ty: parse_quote!( f64 ) ,
976+ exposed: false ,
977+ value_source: ParsedValueSource :: Default ( quote!( 50. ) ) ,
978+ number_soft_min: None ,
979+ number_soft_max: None ,
980+ number_hard_min: None ,
981+ number_hard_max: None ,
982+ number_mode_range: None ,
983+ implementations: Punctuated :: new( ) ,
984+ } ) ,
964985 number_display_decimal_places: None ,
965986 number_step: None ,
966- implementations: Punctuated :: new( ) ,
967987 unit: None ,
968988 } ] ,
969989 body : TokenStream2 :: new ( ) ,
@@ -1007,27 +1027,29 @@ mod tests {
10071027 } ,
10081028 output_type : parse_quote ! ( Table <Raster <P >>) ,
10091029 is_async : false ,
1010- fields : vec ! [ ParsedField :: Regular {
1030+ fields : vec ! [ ParsedField {
10111031 pat_ident: pat_ident( "shadows" ) ,
10121032 name: None ,
10131033 description: String :: new( ) ,
10141034 widget_override: ParsedWidgetOverride :: None ,
1015- ty: parse_quote!( f64 ) ,
1016- exposed: false ,
1017- value_source: ParsedValueSource :: None ,
1018- number_soft_min: None ,
1019- number_soft_max: None ,
1020- number_hard_min: None ,
1021- number_hard_max: None ,
1022- number_mode_range: None ,
1035+ ty: ParsedFieldType :: Regular ( RegularParsedField {
1036+ ty: parse_quote!( f64 ) ,
1037+ exposed: false ,
1038+ value_source: ParsedValueSource :: None ,
1039+ number_soft_min: None ,
1040+ number_soft_max: None ,
1041+ number_hard_min: None ,
1042+ number_hard_max: None ,
1043+ number_mode_range: None ,
1044+ implementations: {
1045+ let mut p = Punctuated :: new( ) ;
1046+ p. push( parse_quote!( f32 ) ) ;
1047+ p. push( parse_quote!( f64 ) ) ;
1048+ p
1049+ } ,
1050+ } ) ,
10231051 number_display_decimal_places: None ,
10241052 number_step: None ,
1025- implementations: {
1026- let mut p = Punctuated :: new( ) ;
1027- p. push( parse_quote!( f32 ) ) ;
1028- p. push( parse_quote!( f64 ) ) ;
1029- p
1030- } ,
10311053 unit: None ,
10321054 } ] ,
10331055 body : TokenStream2 :: new ( ) ,
@@ -1078,22 +1100,24 @@ mod tests {
10781100 } ,
10791101 output_type : parse_quote ! ( f64 ) ,
10801102 is_async : false ,
1081- fields : vec ! [ ParsedField :: Regular {
1103+ fields : vec ! [ ParsedField {
10821104 pat_ident: pat_ident( "b" ) ,
10831105 name: None ,
10841106 description: String :: from( "b" ) ,
10851107 widget_override: ParsedWidgetOverride :: None ,
1086- ty: parse_quote!( f64 ) ,
1087- exposed: false ,
1088- value_source: ParsedValueSource :: None ,
1089- number_soft_min: Some ( parse_quote!( -500. ) ) ,
1090- number_soft_max: Some ( parse_quote!( 500. ) ) ,
1091- number_hard_min: None ,
1092- number_hard_max: None ,
1093- number_mode_range: Some ( parse_quote!( ( 0. , 100. ) ) ) ,
1108+ ty: ParsedFieldType :: Regular ( RegularParsedField {
1109+ ty: parse_quote!( f64 ) ,
1110+ exposed: false ,
1111+ value_source: ParsedValueSource :: None ,
1112+ number_soft_min: Some ( parse_quote!( -500. ) ) ,
1113+ number_soft_max: Some ( parse_quote!( 500. ) ) ,
1114+ number_hard_min: None ,
1115+ number_hard_max: None ,
1116+ number_mode_range: Some ( parse_quote!( ( 0. , 100. ) ) ) ,
1117+ implementations: Punctuated :: new( ) ,
1118+ } ) ,
10941119 number_display_decimal_places: None ,
10951120 number_step: None ,
1096- implementations: Punctuated :: new( ) ,
10971121 unit: None ,
10981122 } ] ,
10991123 body : TokenStream2 :: new ( ) ,
@@ -1137,22 +1161,24 @@ mod tests {
11371161 } ,
11381162 output_type : parse_quote ! ( Table <Raster <CPU >>) ,
11391163 is_async : true ,
1140- fields : vec ! [ ParsedField :: Regular {
1164+ fields : vec ! [ ParsedField {
11411165 pat_ident: pat_ident( "path" ) ,
11421166 name: None ,
1143- ty: parse_quote!( String ) ,
11441167 description: String :: new( ) ,
11451168 widget_override: ParsedWidgetOverride :: None ,
1146- exposed: true ,
1147- value_source: ParsedValueSource :: None ,
1148- number_soft_min: None ,
1149- number_soft_max: None ,
1150- number_hard_min: None ,
1151- number_hard_max: None ,
1152- number_mode_range: None ,
1169+ ty: ParsedFieldType :: Regular ( RegularParsedField {
1170+ ty: parse_quote!( String ) ,
1171+ exposed: true ,
1172+ value_source: ParsedValueSource :: None ,
1173+ number_soft_min: None ,
1174+ number_soft_max: None ,
1175+ number_hard_min: None ,
1176+ number_hard_max: None ,
1177+ number_mode_range: None ,
1178+ implementations: Punctuated :: new( ) ,
1179+ } ) ,
11531180 number_display_decimal_places: None ,
11541181 number_step: None ,
1155- implementations: Punctuated :: new( ) ,
11561182 unit: None ,
11571183 } ] ,
11581184 body : TokenStream2 :: new ( ) ,
0 commit comments