( data: &DataStruct, parse_mode: FieldParseMode, post_parse_steps: &TokenStream, where_collector: &mut WhereCollector, )
| 1094 | } |
| 1095 | |
| 1096 | fn derive_struct_body( |
| 1097 | data: &DataStruct, |
| 1098 | parse_mode: FieldParseMode, |
| 1099 | post_parse_steps: &TokenStream, |
| 1100 | where_collector: &mut WhereCollector, |
| 1101 | ) -> Result<TokenStream> { |
| 1102 | let fields = Field::from_fields(&data.fields)?; |
| 1103 | let members = members_tokens(&data.fields); |
| 1104 | Ok(if parse_mode == FieldParseMode::Sequential { |
| 1105 | SequentialPlan { fields: &fields, members: &members, post_parse_steps, constructor: quote! { Self } } |
| 1106 | .render(where_collector) |
| 1107 | } else { |
| 1108 | MustOccurPlan { |
| 1109 | fields: &fields, |
| 1110 | members: &members, |
| 1111 | post_parse_steps, |
| 1112 | parse_mode, |
| 1113 | constructor: quote! { Self }, |
| 1114 | hoisted: &[], |
| 1115 | } |
| 1116 | .render(where_collector) |
| 1117 | }) |
| 1118 | } |
| 1119 | |
| 1120 | fn derive_enum_body( |
| 1121 | data: &DataEnum, |
no test coverage detected