chaokunyang opened a new issue, #1975:
URL: https://github.com/apache/fury/issues/1975

   ### Feature Request
   
   We've supported object deep copy of object from one instance to another 
instance, but we still don't support deep copy object from one type into 
another type.
   
   ### Is your feature request related to a problem? Please describe
   
   deep copy object from one type into another type:
   
   ```java
   class Struct1 {
     int f1;
     String f2;
   
     public Struct1(int f1, String f2) {
       this.f1 = f1;
       this.f2 = f2;
     }
   }
   
   class Struct2 {
     int f1;
     String f2;
     double f3;
   }
   
   Struct1 s1 = xxx;
   Struct2 struct2 = copyTo(s1, Struct2.class)
   ```
   
   ### Describe the solution you'd like
   
   Extend the current object deep copy mechanism
   
   ### Describe alternatives you've considered
   
   Mock by:
   ```java
   public class StructMappingExample {
     static class Struct1 {
       int f1;
       String f2;
   
       public Struct1(int f1, String f2) {
         this.f1 = f1;
         this.f2 = f2;
       }
     }
   
     static class Struct2 {
       int f1;
       String f2;
       double f3;
     }
   
     static ThreadSafeFury fury1 = Fury.builder()
       .withCompatibleMode(CompatibleMode.COMPATIBLE).buildThreadSafeFury();
     static ThreadSafeFury fury2 = Fury.builder()
       .withCompatibleMode(CompatibleMode.COMPATIBLE).buildThreadSafeFury();
   
     static {
       fury1.register(Struct1.class);
       fury2.register(Struct2.class);
     }
   
     public static void main(String[] args) {
       Struct1 struct1 = new Struct1(10, "abc");
       Struct2 struct2 = (Struct2) fury2.deserialize(fury1.serialize(struct1));
       Assert.assertEquals(struct2.f1, struct1.f1);
       Assert.assertEquals(struct2.f2, struct1.f2);
       struct1 = (Struct1) fury1.deserialize(fury2.serialize(struct2));
       Assert.assertEquals(struct1.f1, struct2.f1);
       Assert.assertEquals(struct1.f2, struct2.f2);
     }
   }
   ```
   
   This will work, but not that efficient cause it will write/read buffer.
   
   ### Additional context
   
   https://github.com/apache/fury/discussions/1973
   https://github.com/apache/fury/pull/1974


-- 
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