This is an automated email from the ASF dual-hosted git repository.

chaokunyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fory.git


The following commit(s) were added to refs/heads/main by this push:
     new cd8d5c4fc refactor(c++/rust): refine c++ serialize_to API (#3045)
cd8d5c4fc is described below

commit cd8d5c4fcc03360a66597540854626130bcc03a4
Author: Shawn Yang <[email protected]>
AuthorDate: Thu Dec 11 13:38:12 2025 +0800

    refactor(c++/rust): refine c++ serialize_to API (#3045)
    
    ## Why?
    
    
    
    ## What does this PR do?
    
    
    
    ## Related issues
    
    
    
    ## Does this PR introduce any user-facing change?
    
    
    
    - [ ] Does this PR introduce any public API change?
    - [ ] Does this PR introduce any binary protocol compatibility change?
    
    ## Benchmark
---
 benchmarks/cpp_benchmark/benchmark.cc           |   6 +-
 cpp/fory/serialization/fory.h                   |  24 ++---
 docs/guide/cpp/basic-serialization.md           |   6 +-
 docs/guide/rust/basic-serialization.md          |   2 +-
 docs/guide/rust/index.md                        |   2 +-
 rust/README.md                                  |   2 +-
 rust/fory-core/src/fory.rs                      |  14 +--
 rust/fory/src/lib.rs                            |   2 +-
 rust/tests/tests/compatible/test_basic_type.rs  | 102 ++++++++++-----------
 rust/tests/tests/compatible/test_struct_enum.rs |   6 +-
 rust/tests/tests/test_cross_language.rs         | 114 ++++++++++++------------
 rust/tests/tests/test_fory.rs                   |  20 ++---
 rust/tests/tests/test_skip_fields.rs            |   2 +-
 13 files changed, 151 insertions(+), 151 deletions(-)

diff --git a/benchmarks/cpp_benchmark/benchmark.cc 
b/benchmarks/cpp_benchmark/benchmark.cc
index c9767ba9b..1e5eaf967 100644
--- a/benchmarks/cpp_benchmark/benchmark.cc
+++ b/benchmarks/cpp_benchmark/benchmark.cc
@@ -441,7 +441,7 @@ static void BM_Fory_Struct_Serialize(benchmark::State 
&state) {
 
   for (auto _ : state) {
     buffer.WriterIndex(0);
-    fory.serialize_to(obj, buffer);
+    fory.serialize_to(buffer, obj);
     benchmark::DoNotOptimize(buffer.data());
   }
 }
@@ -528,7 +528,7 @@ static void BM_Fory_Sample_Serialize(benchmark::State 
&state) {
 
   for (auto _ : state) {
     buffer.WriterIndex(0);
-    auto result = fory.serialize_to(obj, buffer);
+    auto result = fory.serialize_to(buffer, obj);
     benchmark::DoNotOptimize(result);
     benchmark::DoNotOptimize(buffer.data());
   }
@@ -608,7 +608,7 @@ static void BM_Fory_MediaContent_Serialize(benchmark::State 
&state) {
 
   for (auto _ : state) {
     buffer.WriterIndex(0);
-    auto result = fory.serialize_to(obj, buffer);
+    auto result = fory.serialize_to(buffer, obj);
     benchmark::DoNotOptimize(result);
     benchmark::DoNotOptimize(buffer.data());
   }
diff --git a/cpp/fory/serialization/fory.h b/cpp/fory/serialization/fory.h
index 030fed699..e134b31a3 100644
--- a/cpp/fory/serialization/fory.h
+++ b/cpp/fory/serialization/fory.h
@@ -422,12 +422,12 @@ public:
   /// Serialize an object to an existing Buffer (fastest path).
   ///
   /// @tparam T The type of object to serialize.
-  /// @param obj The object to serialize.
   /// @param buffer The buffer to write to.
+  /// @param obj The object to serialize.
   /// @return Number of bytes written, or error.
   template <typename T>
-  FORY_ALWAYS_INLINE Result<size_t, Error> serialize_to(const T &obj,
-                                                        Buffer &buffer) {
+  FORY_ALWAYS_INLINE Result<size_t, Error> serialize_to(Buffer &buffer,
+                                                        const T &obj) {
     if (FORY_PREDICT_FALSE(!finalized_)) {
       ensure_finalized();
     }
@@ -441,18 +441,18 @@ public:
   /// fit the serialized data.
   ///
   /// @tparam T The type of object to serialize.
-  /// @param obj The object to serialize.
   /// @param output The vector to append to.
+  /// @param obj The object to serialize.
   /// @return Number of bytes written, or error.
   template <typename T>
-  Result<size_t, Error> serialize_to(const T &obj,
-                                     std::vector<uint8_t> &output) {
+  Result<size_t, Error> serialize_to(std::vector<uint8_t> &output,
+                                     const T &obj) {
     // Wrap the output vector in a Buffer for zero-copy serialization
     // writer_index starts at output.size() for appending
     Buffer buffer(output);
 
     // Forward to Buffer version
-    auto result = serialize_to(obj, buffer);
+    auto result = serialize_to(buffer, obj);
 
     // Resize vector to actual written size
     output.resize(buffer.writer_index());
@@ -713,16 +713,16 @@ public:
   }
 
   template <typename T>
-  Result<size_t, Error> serialize_to(const T &obj, Buffer &buffer) {
+  Result<size_t, Error> serialize_to(Buffer &buffer, const T &obj) {
     auto fory_handle = fory_pool_.acquire();
-    return fory_handle->serialize_to(obj, buffer);
+    return fory_handle->serialize_to(buffer, obj);
   }
 
   template <typename T>
-  Result<size_t, Error> serialize_to(const T &obj,
-                                     std::vector<uint8_t> &output) {
+  Result<size_t, Error> serialize_to(std::vector<uint8_t> &output,
+                                     const T &obj) {
     auto fory_handle = fory_pool_.acquire();
-    return fory_handle->serialize_to(obj, output);
+    return fory_handle->serialize_to(output, obj);
   }
 
   template <typename T>
diff --git a/docs/guide/cpp/basic-serialization.md 
b/docs/guide/cpp/basic-serialization.md
index 83182495e..5d24a926d 100644
--- a/docs/guide/cpp/basic-serialization.md
+++ b/docs/guide/cpp/basic-serialization.md
@@ -114,7 +114,7 @@ if (result.ok()) {
 ```cpp
 // Serialize to existing Buffer (fastest path)
 Buffer buffer;
-auto result = fory.serialize_to(obj, buffer);
+auto result = fory.serialize_to(buffer, obj);
 if (result.ok()) {
   size_t bytes_written = result.value();
   // buffer now contains serialized data
@@ -122,7 +122,7 @@ if (result.ok()) {
 
 // Serialize to existing vector (zero-copy)
 std::vector<uint8_t> output;
-auto result = fory.serialize_to(obj, output);
+auto result = fory.serialize_to(output, obj);
 if (result.ok()) {
   size_t bytes_written = result.value();
   // output now contains serialized data
@@ -225,7 +225,7 @@ fory.register_struct<Outer>(2);
 
 ## Performance Tips
 
-- **Buffer Reuse**: Use `serialize_to(obj, buffer)` with pre-allocated buffers
+- **Buffer Reuse**: Use `serialize_to(buffer, obj)` with pre-allocated buffers
 - **Pre-registration**: Register all types before serialization starts
 - **Single-Threaded**: Use `build()` instead of `build_thread_safe()` when 
possible
 - **Disable Tracking**: Use `track_ref(false)` when references aren't needed
diff --git a/docs/guide/rust/basic-serialization.md 
b/docs/guide/rust/basic-serialization.md
index e62c2bcc3..0c5b622ee 100644
--- a/docs/guide/rust/basic-serialization.md
+++ b/docs/guide/rust/basic-serialization.md
@@ -144,7 +144,7 @@ let decoded: MyStruct = fory.deserialize(&bytes)?;
 
 // Serialize to existing buffer
 let mut buf: Vec<u8> = vec![];
-fory.serialize_to(&obj, &mut buf)?;
+fory.serialize_to(&mut buf, &obj)?;
 
 // Deserialize from reader
 let mut reader = Reader::new(&buf);
diff --git a/docs/guide/rust/index.md b/docs/guide/rust/index.md
index 522fbf3c0..fe4ba0ae5 100644
--- a/docs/guide/rust/index.md
+++ b/docs/guide/rust/index.md
@@ -81,7 +81,7 @@ fn main() -> Result<(), Error> {
 
     // Serialize to specified buffer
     let mut buf: Vec<u8> = vec![];
-    fory.serialize_to(&user, &mut buf)?;
+    fory.serialize_to(&mut buf, &user)?;
     // Deserialize from specified buffer
     let mut reader = Reader::new(&buf);
     let decoded: User = fory.deserialize_from(&mut reader)?;
diff --git a/rust/README.md b/rust/README.md
index f0bef3569..d84bfcebe 100644
--- a/rust/README.md
+++ b/rust/README.md
@@ -66,7 +66,7 @@ fn main() -> Result<(), Error> {
 
     // Serialize to specified buffer
     let mut buf: Vec<u8> = vec![];
-    fory.serialize_to(&user, &mut buf)?;
+    fory.serialize_to(&mut buf, &user)?;
     // Deserialize from specified buffer
     let mut reader = Reader::new(&buf);
     let decoded: User = fory.deserialize_from(&mut reader)?;
diff --git a/rust/fory-core/src/fory.rs b/rust/fory-core/src/fory.rs
index 6816e4d40..a0081f8a6 100644
--- a/rust/fory-core/src/fory.rs
+++ b/rust/fory-core/src/fory.rs
@@ -401,9 +401,9 @@ impl Fory {
     ///
     /// # Arguments
     ///
-    /// * `record` - A reference to the value to serialize.
     /// * `buf` - A mutable reference to the byte buffer to append the 
serialized data to.
     ///   The buffer will be resized as needed during serialization.
+    /// * `record` - A reference to the value to serialize.
     ///
     /// # Returns
     ///
@@ -431,7 +431,7 @@ impl Fory {
     /// let point = Point { x: 1, y: 2 };
     ///
     /// let mut buf = Vec::new();
-    /// let bytes_written = fory.serialize_to(&point, &mut buf).unwrap();
+    /// let bytes_written = fory.serialize_to(&mut buf, &point).unwrap();
     /// assert_eq!(bytes_written, buf.len());
     /// ```
     ///
@@ -454,11 +454,11 @@ impl Fory {
     /// let mut buf = Vec::new();
     ///
     /// // First serialization
-    /// let len1 = fory.serialize_to(&p1, &mut buf).unwrap();
+    /// let len1 = fory.serialize_to(&mut buf, &p1).unwrap();
     /// let offset1 = buf.len();
     ///
     /// // Second serialization - appends to existing data
-    /// let len2 = fory.serialize_to(&p2, &mut buf).unwrap();
+    /// let len2 = fory.serialize_to(&mut buf, &p2).unwrap();
     /// let offset2 = buf.len();
     ///
     /// assert_eq!(offset1, len1);
@@ -495,20 +495,20 @@ impl Fory {
     /// buf.resize(16, 0);  // Set length to 16 to append the write, capacity 
stays 1024
     ///
     /// let initial_capacity = buf.capacity();
-    /// fory.serialize_to(&point, &mut buf).unwrap();
+    /// fory.serialize_to(&mut buf, &point).unwrap();
     ///
     /// // Reset to smaller size to append the write - capacity unchanged
     /// buf.resize(16, 0);
     /// assert_eq!(buf.capacity(), initial_capacity);  // Capacity not shrunk
     ///
     /// // Reuse buffer efficiently without reallocation
-    /// fory.serialize_to(&point, &mut buf).unwrap();
+    /// fory.serialize_to(&mut buf, &point).unwrap();
     /// assert_eq!(buf.capacity(), initial_capacity);  // Still no reallocation
     /// ```
     pub fn serialize_to<T: Serializer>(
         &self,
-        record: &T,
         buf: &mut Vec<u8>,
+        record: &T,
     ) -> Result<usize, Error> {
         let start = buf.len();
         self.with_write_context(|context| {
diff --git a/rust/fory/src/lib.rs b/rust/fory/src/lib.rs
index 1997e3bb9..41f641ff1 100644
--- a/rust/fory/src/lib.rs
+++ b/rust/fory/src/lib.rs
@@ -83,7 +83,7 @@
 //!
 //! // Serialize to specified buffer and deserialize from it
 //! let mut buf: Vec<u8> = vec![];
-//! fory.serialize_to(&user, &mut buf)?;
+//! fory.serialize_to(&mut buf, &user)?;
 //! let mut reader = Reader::new(&buf);
 //! let decoded: User = fory.deserialize_from(&mut reader)?;
 //! assert_eq!(user, decoded);
diff --git a/rust/tests/tests/compatible/test_basic_type.rs 
b/rust/tests/tests/compatible/test_basic_type.rs
index 02f8abbf2..4f08fee64 100644
--- a/rust/tests/tests/compatible/test_basic_type.rs
+++ b/rust/tests/tests/compatible/test_basic_type.rs
@@ -44,82 +44,82 @@ const FLOAT64_ARRAY: [f64; 1] = [53.0];
 
 fn serialize_non_null(fory: &Fory) -> Vec<u8> {
     let mut buf = Vec::new();
-    fory.serialize_to(&BOOL_VAL, &mut buf).unwrap();
-    fory.serialize_to(&I8_VAL, &mut buf).unwrap();
-    fory.serialize_to(&I16_VAL, &mut buf).unwrap();
-    fory.serialize_to(&I32_VAL, &mut buf).unwrap();
-    fory.serialize_to(&I64_VAL, &mut buf).unwrap();
-    fory.serialize_to(&F32_VAL, &mut buf).unwrap();
-    fory.serialize_to(&F64_VAL, &mut buf).unwrap();
-    fory.serialize_to(&STR_LATIN1_VAL.to_string(), &mut buf)
+    fory.serialize_to(&mut buf, &BOOL_VAL).unwrap();
+    fory.serialize_to(&mut buf, &I8_VAL).unwrap();
+    fory.serialize_to(&mut buf, &I16_VAL).unwrap();
+    fory.serialize_to(&mut buf, &I32_VAL).unwrap();
+    fory.serialize_to(&mut buf, &I64_VAL).unwrap();
+    fory.serialize_to(&mut buf, &F32_VAL).unwrap();
+    fory.serialize_to(&mut buf, &F64_VAL).unwrap();
+    fory.serialize_to(&mut buf, &STR_LATIN1_VAL.to_string())
         .unwrap();
-    fory.serialize_to(&LOCAL_DATE_VAL, &mut buf).unwrap();
-    fory.serialize_to(&TIMESTAMP_VAL, &mut buf).unwrap();
-    fory.serialize_to(&BOOL_ARRAY.to_vec(), &mut buf).unwrap();
-    fory.serialize_to(&INT8_ARRAY.to_vec(), &mut buf).unwrap();
-    fory.serialize_to(&INT16_ARRAY.to_vec(), &mut buf).unwrap();
-    fory.serialize_to(&INT32_ARRAY.to_vec(), &mut buf).unwrap();
-    fory.serialize_to(&INT64_ARRAY.to_vec(), &mut buf).unwrap();
-    fory.serialize_to(&FLOAT32_ARRAY.to_vec(), &mut buf)
+    fory.serialize_to(&mut buf, &LOCAL_DATE_VAL).unwrap();
+    fory.serialize_to(&mut buf, &TIMESTAMP_VAL).unwrap();
+    fory.serialize_to(&mut buf, &BOOL_ARRAY.to_vec()).unwrap();
+    fory.serialize_to(&mut buf, &INT8_ARRAY.to_vec()).unwrap();
+    fory.serialize_to(&mut buf, &INT16_ARRAY.to_vec()).unwrap();
+    fory.serialize_to(&mut buf, &INT32_ARRAY.to_vec()).unwrap();
+    fory.serialize_to(&mut buf, &INT64_ARRAY.to_vec()).unwrap();
+    fory.serialize_to(&mut buf, &FLOAT32_ARRAY.to_vec())
         .unwrap();
-    fory.serialize_to(&FLOAT64_ARRAY.to_vec(), &mut buf)
+    fory.serialize_to(&mut buf, &FLOAT64_ARRAY.to_vec())
         .unwrap();
     buf
 }
 
 fn serialize_nullable(fory: &Fory) -> Vec<u8> {
     let mut buf = Vec::new();
-    fory.serialize_to(&Some(BOOL_VAL), &mut buf).unwrap();
-    fory.serialize_to(&Some(I8_VAL), &mut buf).unwrap();
-    fory.serialize_to(&Some(I16_VAL), &mut buf).unwrap();
-    fory.serialize_to(&Some(I32_VAL), &mut buf).unwrap();
-    fory.serialize_to(&Some(I64_VAL), &mut buf).unwrap();
-    fory.serialize_to(&Some(F32_VAL), &mut buf).unwrap();
-    fory.serialize_to(&Some(F64_VAL), &mut buf).unwrap();
-    fory.serialize_to(&Some(STR_LATIN1_VAL.to_string()), &mut buf)
+    fory.serialize_to(&mut buf, &Some(BOOL_VAL)).unwrap();
+    fory.serialize_to(&mut buf, &Some(I8_VAL)).unwrap();
+    fory.serialize_to(&mut buf, &Some(I16_VAL)).unwrap();
+    fory.serialize_to(&mut buf, &Some(I32_VAL)).unwrap();
+    fory.serialize_to(&mut buf, &Some(I64_VAL)).unwrap();
+    fory.serialize_to(&mut buf, &Some(F32_VAL)).unwrap();
+    fory.serialize_to(&mut buf, &Some(F64_VAL)).unwrap();
+    fory.serialize_to(&mut buf, &Some(STR_LATIN1_VAL.to_string()))
         .unwrap();
-    fory.serialize_to(&Some(LOCAL_DATE_VAL), &mut buf).unwrap();
-    fory.serialize_to(&Some(TIMESTAMP_VAL), &mut buf).unwrap();
-    fory.serialize_to(&Some(BOOL_ARRAY.to_vec()), &mut buf)
+    fory.serialize_to(&mut buf, &Some(LOCAL_DATE_VAL)).unwrap();
+    fory.serialize_to(&mut buf, &Some(TIMESTAMP_VAL)).unwrap();
+    fory.serialize_to(&mut buf, &Some(BOOL_ARRAY.to_vec()))
         .unwrap();
-    fory.serialize_to(&Some(INT8_ARRAY.to_vec()), &mut buf)
+    fory.serialize_to(&mut buf, &Some(INT8_ARRAY.to_vec()))
         .unwrap();
-    fory.serialize_to(&Some(INT16_ARRAY.to_vec()), &mut buf)
+    fory.serialize_to(&mut buf, &Some(INT16_ARRAY.to_vec()))
         .unwrap();
-    fory.serialize_to(&Some(INT32_ARRAY.to_vec()), &mut buf)
+    fory.serialize_to(&mut buf, &Some(INT32_ARRAY.to_vec()))
         .unwrap();
-    fory.serialize_to(&Some(INT64_ARRAY.to_vec()), &mut buf)
+    fory.serialize_to(&mut buf, &Some(INT64_ARRAY.to_vec()))
         .unwrap();
-    fory.serialize_to(&Some(FLOAT32_ARRAY.to_vec()), &mut buf)
+    fory.serialize_to(&mut buf, &Some(FLOAT32_ARRAY.to_vec()))
         .unwrap();
-    fory.serialize_to(&Some(FLOAT64_ARRAY.to_vec()), &mut buf)
+    fory.serialize_to(&mut buf, &Some(FLOAT64_ARRAY.to_vec()))
         .unwrap();
-    fory.serialize_to(&Option::<bool>::None, &mut buf).unwrap();
-    fory.serialize_to(&Option::<i8>::None, &mut buf).unwrap();
-    fory.serialize_to(&Option::<i16>::None, &mut buf).unwrap();
-    fory.serialize_to(&Option::<i32>::None, &mut buf).unwrap();
-    fory.serialize_to(&Option::<i64>::None, &mut buf).unwrap();
-    fory.serialize_to(&Option::<f32>::None, &mut buf).unwrap();
-    fory.serialize_to(&Option::<f64>::None, &mut buf).unwrap();
-    fory.serialize_to(&Option::<String>::None, &mut buf)
+    fory.serialize_to(&mut buf, &Option::<bool>::None).unwrap();
+    fory.serialize_to(&mut buf, &Option::<i8>::None).unwrap();
+    fory.serialize_to(&mut buf, &Option::<i16>::None).unwrap();
+    fory.serialize_to(&mut buf, &Option::<i32>::None).unwrap();
+    fory.serialize_to(&mut buf, &Option::<i64>::None).unwrap();
+    fory.serialize_to(&mut buf, &Option::<f32>::None).unwrap();
+    fory.serialize_to(&mut buf, &Option::<f64>::None).unwrap();
+    fory.serialize_to(&mut buf, &Option::<String>::None)
         .unwrap();
-    fory.serialize_to(&Option::<NaiveDate>::None, &mut buf)
+    fory.serialize_to(&mut buf, &Option::<NaiveDate>::None)
         .unwrap();
-    fory.serialize_to(&Option::<NaiveDateTime>::None, &mut buf)
+    fory.serialize_to(&mut buf, &Option::<NaiveDateTime>::None)
         .unwrap();
-    fory.serialize_to(&Option::<Vec<bool>>::None, &mut buf)
+    fory.serialize_to(&mut buf, &Option::<Vec<bool>>::None)
         .unwrap();
-    fory.serialize_to(&Option::<Vec<i8>>::None, &mut buf)
+    fory.serialize_to(&mut buf, &Option::<Vec<i8>>::None)
         .unwrap();
-    fory.serialize_to(&Option::<Vec<i16>>::None, &mut buf)
+    fory.serialize_to(&mut buf, &Option::<Vec<i16>>::None)
         .unwrap();
-    fory.serialize_to(&Option::<Vec<i32>>::None, &mut buf)
+    fory.serialize_to(&mut buf, &Option::<Vec<i32>>::None)
         .unwrap();
-    fory.serialize_to(&Option::<Vec<i64>>::None, &mut buf)
+    fory.serialize_to(&mut buf, &Option::<Vec<i64>>::None)
         .unwrap();
-    fory.serialize_to(&Option::<Vec<f32>>::None, &mut buf)
+    fory.serialize_to(&mut buf, &Option::<Vec<f32>>::None)
         .unwrap();
-    fory.serialize_to(&Option::<Vec<f64>>::None, &mut buf)
+    fory.serialize_to(&mut buf, &Option::<Vec<f64>>::None)
         .unwrap();
     buf
 }
diff --git a/rust/tests/tests/compatible/test_struct_enum.rs 
b/rust/tests/tests/compatible/test_struct_enum.rs
index ececef218..052c7439f 100644
--- a/rust/tests/tests/compatible/test_struct_enum.rs
+++ b/rust/tests/tests/compatible/test_struct_enum.rs
@@ -93,9 +93,9 @@ fn simple_write_continuous() {
         last: 44,
     };
     let mut buffer = vec![];
-    fory.serialize_to(&animal, &mut buffer).unwrap();
-    fory.serialize_to(&animal, &mut buffer).unwrap();
-    fory.serialize_to(&animal, &mut buffer).unwrap();
+    fory.serialize_to(&mut buffer, &animal).unwrap();
+    fory.serialize_to(&mut buffer, &animal).unwrap();
+    fory.serialize_to(&mut buffer, &animal).unwrap();
 
     let reader = &mut Reader::new(buffer.as_slice());
     let animal1: Animal1 = fory.deserialize_from(reader).unwrap();
diff --git a/rust/tests/tests/test_cross_language.rs 
b/rust/tests/tests/test_cross_language.rs
index c092a116f..2afc3f470 100644
--- a/rust/tests/tests/test_cross_language.rs
+++ b/rust/tests/tests/test_cross_language.rs
@@ -260,7 +260,7 @@ fn test_string_serializer() {
     let fory = Fory::default().compatible(true).xlang(true);
     let mut buf = Vec::new();
     for s in &test_strings {
-        fory.serialize_to(s, &mut buf).unwrap();
+        fory.serialize_to(&mut buf, s).unwrap();
     }
     fs::write(&data_file_path, buf).unwrap();
 }
@@ -320,34 +320,34 @@ fn test_cross_language_serializer() {
     assert_de!(fory, reader, Color, color);
 
     let mut buf = Vec::new();
-    fory.serialize_to(&true, &mut buf).unwrap();
-    fory.serialize_to(&false, &mut buf).unwrap();
-    fory.serialize_to(&-1, &mut buf).unwrap();
-    fory.serialize_to(&i8::MAX, &mut buf).unwrap();
-    fory.serialize_to(&i8::MIN, &mut buf).unwrap();
-    fory.serialize_to(&i16::MAX, &mut buf).unwrap();
-    fory.serialize_to(&i16::MIN, &mut buf).unwrap();
-    fory.serialize_to(&i32::MAX, &mut buf).unwrap();
-    fory.serialize_to(&i32::MIN, &mut buf).unwrap();
-    fory.serialize_to(&i64::MAX, &mut buf).unwrap();
-    fory.serialize_to(&i64::MIN, &mut buf).unwrap();
-    fory.serialize_to(&-1f32, &mut buf).unwrap();
-    fory.serialize_to(&-1f64, &mut buf).unwrap();
-    fory.serialize_to(&"str".to_string(), &mut buf).unwrap();
-    fory.serialize_to(&day, &mut buf).unwrap();
-    fory.serialize_to(&instant, &mut buf).unwrap();
-    fory.serialize_to(&vec![true, false], &mut buf).unwrap();
-    fory.serialize_to(&vec![1, i8::MAX as u8], &mut buf)
+    fory.serialize_to(&mut buf, &true).unwrap();
+    fory.serialize_to(&mut buf, &false).unwrap();
+    fory.serialize_to(&mut buf, &-1).unwrap();
+    fory.serialize_to(&mut buf, &i8::MAX).unwrap();
+    fory.serialize_to(&mut buf, &i8::MIN).unwrap();
+    fory.serialize_to(&mut buf, &i16::MAX).unwrap();
+    fory.serialize_to(&mut buf, &i16::MIN).unwrap();
+    fory.serialize_to(&mut buf, &i32::MAX).unwrap();
+    fory.serialize_to(&mut buf, &i32::MIN).unwrap();
+    fory.serialize_to(&mut buf, &i64::MAX).unwrap();
+    fory.serialize_to(&mut buf, &i64::MIN).unwrap();
+    fory.serialize_to(&mut buf, &-1f32).unwrap();
+    fory.serialize_to(&mut buf, &-1f64).unwrap();
+    fory.serialize_to(&mut buf, &"str".to_string()).unwrap();
+    fory.serialize_to(&mut buf, &day).unwrap();
+    fory.serialize_to(&mut buf, &instant).unwrap();
+    fory.serialize_to(&mut buf, &vec![true, false]).unwrap();
+    fory.serialize_to(&mut buf, &vec![1, i8::MAX as u8])
         .unwrap();
-    fory.serialize_to(&vec![1, i16::MAX], &mut buf).unwrap();
-    fory.serialize_to(&vec![1, i32::MAX], &mut buf).unwrap();
-    fory.serialize_to(&vec![1, i64::MAX], &mut buf).unwrap();
-    fory.serialize_to(&vec![1f32, 2f32], &mut buf).unwrap();
-    fory.serialize_to(&vec![1f64, 2f64], &mut buf).unwrap();
-    fory.serialize_to(&str_list, &mut buf).unwrap();
-    fory.serialize_to(&str_set, &mut buf).unwrap();
-    fory.serialize_to(&str_map, &mut buf).unwrap();
-    fory.serialize_to(&color, &mut buf).unwrap();
+    fory.serialize_to(&mut buf, &vec![1, i16::MAX]).unwrap();
+    fory.serialize_to(&mut buf, &vec![1, i32::MAX]).unwrap();
+    fory.serialize_to(&mut buf, &vec![1, i64::MAX]).unwrap();
+    fory.serialize_to(&mut buf, &vec![1f32, 2f32]).unwrap();
+    fory.serialize_to(&mut buf, &vec![1f64, 2f64]).unwrap();
+    fory.serialize_to(&mut buf, &str_list).unwrap();
+    fory.serialize_to(&mut buf, &str_set).unwrap();
+    fory.serialize_to(&mut buf, &str_map).unwrap();
+    fory.serialize_to(&mut buf, &color).unwrap();
     fs::write(&data_file_path, buf).unwrap();
 }
 
@@ -449,10 +449,10 @@ fn test_list() {
     assert_eq!(remote_item_list2, item_list2);
 
     let mut buf = Vec::new();
-    fory.serialize_to(&remote_str_list, &mut buf).unwrap();
-    fory.serialize_to(&remote_str_list2, &mut buf).unwrap();
-    fory.serialize_to(&remote_item_list, &mut buf).unwrap();
-    fory.serialize_to(&remote_item_list2, &mut buf).unwrap();
+    fory.serialize_to(&mut buf, &remote_str_list).unwrap();
+    fory.serialize_to(&mut buf, &remote_str_list2).unwrap();
+    fory.serialize_to(&mut buf, &remote_item_list).unwrap();
+    fory.serialize_to(&mut buf, &remote_item_list2).unwrap();
 
     fs::write(&data_file_path, buf).unwrap();
 }
@@ -565,13 +565,13 @@ fn test_integer() {
     assert_eq!(remote_f6, f6);
 
     let mut buf = Vec::new();
-    fory.serialize_to(&remote_item2, &mut buf).unwrap();
-    fory.serialize_to(&remote_f1, &mut buf).unwrap();
-    fory.serialize_to(&remote_f2, &mut buf).unwrap();
-    fory.serialize_to(&remote_f3, &mut buf).unwrap();
-    fory.serialize_to(&remote_f4, &mut buf).unwrap();
-    fory.serialize_to(&remote_f5, &mut buf).unwrap();
-    fory.serialize_to(&remote_f6, &mut buf).unwrap();
+    fory.serialize_to(&mut buf, &remote_item2).unwrap();
+    fory.serialize_to(&mut buf, &remote_f1).unwrap();
+    fory.serialize_to(&mut buf, &remote_f2).unwrap();
+    fory.serialize_to(&mut buf, &remote_f3).unwrap();
+    fory.serialize_to(&mut buf, &remote_f4).unwrap();
+    fory.serialize_to(&mut buf, &remote_f5).unwrap();
+    fory.serialize_to(&mut buf, &remote_f6).unwrap();
     fs::write(&data_file_path, buf).unwrap();
 }
 
@@ -695,13 +695,13 @@ fn test_consistent_named() {
     }
     let mut buf = Vec::new();
     for _ in 0..3 {
-        fory.serialize_to(&color, &mut buf).unwrap();
+        fory.serialize_to(&mut buf, &color).unwrap();
     }
     for _ in 0..3 {
-        fory.serialize_to(&my_struct, &mut buf).unwrap();
+        fory.serialize_to(&mut buf, &my_struct).unwrap();
     }
     for _ in 0..3 {
-        fory.serialize_to(&my_ext, &mut buf).unwrap();
+        fory.serialize_to(&mut buf, &my_ext).unwrap();
     }
     fs::write(&data_file_path, buf).unwrap();
 }
@@ -774,9 +774,9 @@ fn test_item() {
     assert_eq!(remote_item3, item3);
 
     let mut buf = Vec::new();
-    fory.serialize_to(&remote_item1, &mut buf).unwrap();
-    fory.serialize_to(&remote_item2, &mut buf).unwrap();
-    fory.serialize_to(&remote_item3, &mut buf).unwrap();
+    fory.serialize_to(&mut buf, &remote_item1).unwrap();
+    fory.serialize_to(&mut buf, &remote_item2).unwrap();
+    fory.serialize_to(&mut buf, &remote_item3).unwrap();
     fs::write(&data_file_path, buf).unwrap();
 }
 
@@ -800,10 +800,10 @@ fn test_color() {
     assert_eq!(remote_white, Color::White);
 
     let mut buf = Vec::new();
-    fory.serialize_to(&Color::Green, &mut buf).unwrap();
-    fory.serialize_to(&Color::Red, &mut buf).unwrap();
-    fory.serialize_to(&Color::Blue, &mut buf).unwrap();
-    fory.serialize_to(&Color::White, &mut buf).unwrap();
+    fory.serialize_to(&mut buf, &Color::Green).unwrap();
+    fory.serialize_to(&mut buf, &Color::Red).unwrap();
+    fory.serialize_to(&mut buf, &Color::Blue).unwrap();
+    fory.serialize_to(&mut buf, &Color::White).unwrap();
     fs::write(&data_file_path, buf).unwrap();
 }
 
@@ -834,8 +834,8 @@ fn test_struct_with_list() {
     assert_eq!(remote_struct2, struct2);
 
     let mut buf = Vec::new();
-    fory.serialize_to(&remote_struct1, &mut buf).unwrap();
-    fory.serialize_to(&remote_struct2, &mut buf).unwrap();
+    fory.serialize_to(&mut buf, &remote_struct1).unwrap();
+    fory.serialize_to(&mut buf, &remote_struct2).unwrap();
     fs::write(&data_file_path, buf).unwrap();
 }
 
@@ -868,8 +868,8 @@ fn test_struct_with_map() {
     assert_eq!(remote_struct2, struct2);
 
     let mut buf = Vec::new();
-    fory.serialize_to(&remote_struct1, &mut buf).unwrap();
-    fory.serialize_to(&remote_struct2, &mut buf).unwrap();
+    fory.serialize_to(&mut buf, &remote_struct1).unwrap();
+    fory.serialize_to(&mut buf, &remote_struct2).unwrap();
     fs::write(&data_file_path, buf).unwrap();
 }
 
@@ -947,8 +947,8 @@ fn test_polymorphic_list() {
 
     // Write back
     let mut buf = Vec::new();
-    fory.serialize_to(&animals, &mut buf).unwrap();
-    fory.serialize_to(&holder, &mut buf).unwrap();
+    fory.serialize_to(&mut buf, &animals).unwrap();
+    fory.serialize_to(&mut buf, &holder).unwrap();
     fs::write(&data_file_path, buf).unwrap();
 }
 
@@ -1007,7 +1007,7 @@ fn test_polymorphic_map() {
 
     // Write back
     let mut buf = Vec::new();
-    fory.serialize_to(&animal_map, &mut buf).unwrap();
-    fory.serialize_to(&holder, &mut buf).unwrap();
+    fory.serialize_to(&mut buf, &animal_map).unwrap();
+    fory.serialize_to(&mut buf, &holder).unwrap();
     fs::write(&data_file_path, buf).unwrap();
 }
diff --git a/rust/tests/tests/test_fory.rs b/rust/tests/tests/test_fory.rs
index d8551a803..fc7096c35 100644
--- a/rust/tests/tests/test_fory.rs
+++ b/rust/tests/tests/test_fory.rs
@@ -63,12 +63,12 @@ fn test_serialize_to_appends_bytes() {
     let expected_second = fory.serialize(&p2).unwrap();
 
     let mut buf = Vec::new();
-    let len_first = fory.serialize_to(&p1, &mut buf).unwrap();
+    let len_first = fory.serialize_to(&mut buf, &p1).unwrap();
     assert_eq!(len_first, expected_first.len());
     assert_eq!(buf.len(), len_first);
     assert_eq!(&buf[..len_first], &expected_first);
 
-    let len_second = fory.serialize_to(&p2, &mut buf).unwrap();
+    let len_second = fory.serialize_to(&mut buf, &p2).unwrap();
     assert_eq!(len_second, expected_second.len());
     assert_eq!(buf.len(), len_first + len_second);
     assert_eq!(&buf[len_first..], &expected_second);
@@ -96,7 +96,7 @@ fn test_serialize_to_detailed() {
     // Test 1: Basic serialization to empty buffer
     let p1 = Point { x: 10, y: 20 };
     let mut buf = Vec::new();
-    let len1 = fory.serialize_to(&p1, &mut buf).unwrap();
+    let len1 = fory.serialize_to(&mut buf, &p1).unwrap();
     assert_eq!(len1, buf.len());
     let deserialized1: Point = fory.deserialize_from(&mut 
Reader::new(&buf)).unwrap();
     assert_eq!(p1, deserialized1);
@@ -106,9 +106,9 @@ fn test_serialize_to_detailed() {
     let p3 = Point { x: 0, y: 0 };
 
     buf.clear();
-    let len2_first = fory.serialize_to(&p2, &mut buf).unwrap();
+    let len2_first = fory.serialize_to(&mut buf, &p2).unwrap();
     let offset1 = buf.len();
-    let len2_second = fory.serialize_to(&p3, &mut buf).unwrap();
+    let len2_second = fory.serialize_to(&mut buf, &p3).unwrap();
     let offset2 = buf.len();
 
     assert_eq!(offset1, len2_first);
@@ -129,7 +129,7 @@ fn test_serialize_to_detailed() {
     };
 
     buf.clear();
-    let len3 = fory.serialize_to(&line, &mut buf).unwrap();
+    let len3 = fory.serialize_to(&mut buf, &line).unwrap();
     assert_eq!(len3, buf.len());
     let deserialized_line: Line = fory.deserialize_from(&mut 
Reader::new(&buf)).unwrap();
     assert_eq!(line, deserialized_line);
@@ -143,7 +143,7 @@ fn test_serialize_to_detailed() {
     let header_size = buf.len();
 
     // Serialize data after header
-    let data_len = fory.serialize_to(&p4, &mut buf).unwrap();
+    let data_len = fory.serialize_to(&mut buf, &p4).unwrap();
 
     // Write the data length into the header
     buf[0..8].copy_from_slice(&(data_len as u64).to_le_bytes());
@@ -164,14 +164,14 @@ fn test_serialize_to_detailed() {
     buf_with_capacity.resize(16, 0);
 
     let initial_capacity = buf_with_capacity.capacity();
-    fory.serialize_to(&p1, &mut buf_with_capacity).unwrap();
+    fory.serialize_to(&mut buf_with_capacity, &p1).unwrap();
 
     // Reset to smaller size - capacity should remain unchanged
     buf_with_capacity.resize(16, 0);
     assert_eq!(buf_with_capacity.capacity(), initial_capacity);
 
     // Serialize again - should not reallocate
-    fory.serialize_to(&p2, &mut buf_with_capacity).unwrap();
+    fory.serialize_to(&mut buf_with_capacity, &p2).unwrap();
     assert_eq!(buf_with_capacity.capacity(), initial_capacity);
 
     // Test 6: Serializing many objects sequentially
@@ -185,7 +185,7 @@ fn test_serialize_to_detailed() {
     ];
 
     for point in &points {
-        fory.serialize_to(point, &mut buf).unwrap();
+        fory.serialize_to(&mut buf, point).unwrap();
     }
 
     // Deserialize all objects and verify using a single reader
diff --git a/rust/tests/tests/test_skip_fields.rs 
b/rust/tests/tests/test_skip_fields.rs
index 00e8e4949..9a9c43059 100644
--- a/rust/tests/tests/test_skip_fields.rs
+++ b/rust/tests/tests/test_skip_fields.rs
@@ -98,7 +98,7 @@ fn test_basic_skip_functionality() {
     assert_eq!(decoded.skipped_field, String::default());
 
     let mut buf: Vec<u8> = vec![];
-    fory.serialize_to(&original, &mut buf).unwrap();
+    fory.serialize_to(&mut buf, &original).unwrap();
     let mut reader = Reader::new(&buf);
     let decoded: TestSkipFields = fory.deserialize_from(&mut reader).unwrap();
     assert_eq!(original.serialized_field, decoded.serialized_field);


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

Reply via email to