| 977 | } |
| 978 | |
| 979 | fn assert_parsed_node_fn(parsed: &ParsedNodeFn, expected: &ParsedNodeFn) { |
| 980 | assert_eq!(parsed.fn_name, expected.fn_name); |
| 981 | assert_eq!(parsed.struct_name, expected.struct_name); |
| 982 | assert_eq!(parsed.mod_name, expected.mod_name); |
| 983 | assert_eq!(parsed.is_async, expected.is_async); |
| 984 | assert_eq!(format!("{:?}", parsed.input), format!("{:?}", expected.input)); |
| 985 | assert_eq!(format!("{:?}", parsed.output_type), format!("{:?}", expected.output_type)); |
| 986 | assert_eq!(parsed.attributes.category, expected.attributes.category); |
| 987 | assert_eq!(parsed.attributes.display_name, expected.attributes.display_name); |
| 988 | assert_eq!(parsed.attributes.path, expected.attributes.path); |
| 989 | assert_eq!(parsed.attributes.skip_impl, expected.attributes.skip_impl); |
| 990 | assert_eq!(parsed.fields.len(), expected.fields.len()); |
| 991 | assert_eq!(parsed.description, expected.description); |
| 992 | |
| 993 | for (parsed_field, expected_field) in parsed.fields.iter().zip(expected.fields.iter()) { |
| 994 | match (parsed_field, expected_field) { |
| 995 | ( |
| 996 | ParsedField { |
| 997 | pat_ident: p_name, |
| 998 | ty: ParsedFieldType::Regular(RegularParsedField { |
| 999 | ty: p_ty, |
| 1000 | exposed: p_exp, |
| 1001 | value_source: p_default, |
| 1002 | .. |
| 1003 | }), |
| 1004 | .. |
| 1005 | }, |
| 1006 | ParsedField { |
| 1007 | pat_ident: e_name, |
| 1008 | ty: ParsedFieldType::Regular(RegularParsedField { |
| 1009 | ty: e_ty, |
| 1010 | exposed: e_exp, |
| 1011 | value_source: e_default, |
| 1012 | .. |
| 1013 | }), |
| 1014 | .. |
| 1015 | }, |
| 1016 | ) => { |
| 1017 | assert_eq!(p_name, e_name); |
| 1018 | assert_eq!(p_exp, e_exp); |
| 1019 | match (p_default, e_default) { |
| 1020 | (ParsedValueSource::None, ParsedValueSource::None) => {} |
| 1021 | (ParsedValueSource::Default(p), ParsedValueSource::Default(e)) => { |
| 1022 | assert_eq!(p.to_token_stream().to_string(), e.to_token_stream().to_string()); |
| 1023 | } |
| 1024 | (ParsedValueSource::Scope(p), ParsedValueSource::Scope(e)) => { |
| 1025 | assert_eq!(p.to_token_stream().to_string(), e.to_token_stream().to_string()); |
| 1026 | } |
| 1027 | _ => panic!("Mismatched default values"), |
| 1028 | } |
| 1029 | assert_eq!(format!("{p_ty:?}"), format!("{:?}", e_ty)); |
| 1030 | } |
| 1031 | ( |
| 1032 | ParsedField { |
| 1033 | pat_ident: p_name, |
| 1034 | ty: ParsedFieldType::Node(NodeParsedField { |
| 1035 | input_type: p_input, |
| 1036 | output_type: p_output, |