chaokunyang commented on code in PR #3092:
URL: https://github.com/apache/fory/pull/3092#discussion_r2647141605


##########
rust/fory-derive/src/object/read.rs:
##########
@@ -76,41 +75,65 @@ pub(crate) fn declare_var(fields: &[&Field]) -> 
Vec<TokenStream> {
         .collect()
 }
 
-pub(crate) fn assign_value(fields: &[&Field]) -> Vec<TokenStream> {
-    let is_tuple = super::util::is_tuple_struct(fields);
+pub(crate) fn assign_value_sorted(sorted_fields: &[SortedField<'_>]) -> 
Vec<TokenStream> {
+    let fields: Vec<&Field> = sorted_fields.iter().map(|sf| 
sf.field).collect();
+    let is_tuple = super::util::is_tuple_struct(&fields);
 
-    fields
-        .iter()
-        .enumerate()
-        .map(|(idx, field)| {
-            let var_name = create_private_field_name(field, idx);
-            let value_expr = match classify_trait_object_field(&field.ty) {
-                StructField::BoxDyn | StructField::RcDyn(_) | 
StructField::ArcDyn(_) => {
-                    quote! { #var_name }
-                }
-                StructField::ContainsTraitObject => {
-                    quote! { #var_name.unwrap() }
-                }
-                _ => {
-                    if need_declared_by_option(field) {
-                        let ty = &field.ty;
-                        quote! { #var_name.unwrap_or_else(|| <#ty as 
fory_core::ForyDefault>::fory_default()) }
-                    } else {
+    if is_tuple {

Review Comment:
   ditto, two big branch



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to