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

kriskras99 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/avro-rs.git


The following commit(s) were added to refs/heads/main by this push:
     new 5a553be  feat: Add posibility to append values to writer without 
validating (#447)
5a553be is described below

commit 5a553beac6b1858e6f97d110318216cf6ecdb4c6
Author: Kriskras99 <[email protected]>
AuthorDate: Wed Jan 28 09:30:53 2026 +0100

    feat: Add posibility to append values to writer without validating (#447)
    
    * feat: Add posibility to append values to writer without validating
    
    * fix: Deprecate `Writer::append` in favor of `Writer::append_value` for 
consistent naming
    
    * fix: Update README
---
 avro/README.md                            |   6 +-
 avro/examples/generate_interop_data.rs    |   2 +-
 avro/src/bigdecimal.rs                    |   2 +-
 avro/src/lib.rs                           |  18 ++--
 avro/src/reader.rs                        |   4 +-
 avro/src/schema/mod.rs                    |   2 +-
 avro/src/schema_compatibility.rs          |   4 +-
 avro/src/writer.rs                        | 140 +++++++++++++++++++++---------
 avro/tests/append_to_existing.rs          |   8 +-
 avro/tests/codecs.rs                      |   2 +-
 avro/tests/schema.rs                      |  28 +++---
 avro/tests/shared.rs                      |   4 +-
 avro/tests/to_from_avro_datum_schemata.rs |   2 +-
 wasm-demo/tests/demos.rs                  |   2 +-
 14 files changed, 142 insertions(+), 82 deletions(-)

diff --git a/avro/README.md b/avro/README.md
index 62617c1..ce75605 100644
--- a/avro/README.md
+++ b/avro/README.md
@@ -214,7 +214,7 @@ record.put("a", 27i64);
 record.put("b", "foo");
 
 // schema validation happens here
-writer.append(record).unwrap();
+writer.append_value(record).unwrap();
 
 // this is how to get back the resulting avro bytecode
 // this performs a flush operation to make sure data has been written, so it 
can fail
@@ -427,7 +427,7 @@ fn main() -> Result<(), Error> {
     record.put("a", 27i64);
     record.put("b", "foo");
 
-    writer.append(record)?;
+    writer.append_value(record)?;
 
     let test = Test {
         a: 27,
@@ -564,7 +564,7 @@ fn main() -> Result<(), Error> {
     record.put("local_timestamp_nanos", Value::LocalTimestampMicros(6));
     record.put("duration", Duration::new(Months::new(6), Days::new(7), 
Millis::new(8)));
 
-    writer.append(record)?;
+    writer.append_value(record)?;
 
     let input = writer.into_inner()?;
     let reader = Reader::with_schema(&schema, &input[..])?;
diff --git a/avro/examples/generate_interop_data.rs 
b/avro/examples/generate_interop_data.rs
index 47cb8ea..519b35a 100644
--- a/avro/examples/generate_interop_data.rs
+++ b/avro/examples/generate_interop_data.rs
@@ -101,7 +101,7 @@ fn main() -> Result<(), Box<dyn Error>> {
         write_user_metadata(&mut writer)?;
 
         let datum = create_datum(&schema);
-        writer.append(datum)?;
+        writer.append_value(datum)?;
         writer.flush()?;
         println!("Wrote {file_name}");
     }
diff --git a/avro/src/bigdecimal.rs b/avro/src/bigdecimal.rs
index 9702a8c..28f395d 100644
--- a/avro/src/bigdecimal.rs
+++ b/avro/src/bigdecimal.rs
@@ -158,7 +158,7 @@ mod tests {
             .writer(Vec::new())
             .build()?;
 
-        writer.append(record.clone())?;
+        writer.append_value(record.clone())?;
         writer.flush()?;
 
         // read record
diff --git a/avro/src/lib.rs b/avro/src/lib.rs
index f60c8c2..d7aece5 100644
--- a/avro/src/lib.rs
+++ b/avro/src/lib.rs
@@ -216,7 +216,7 @@
 //! record.put("b", "foo");
 //!
 //! // schema validation happens here
-//! writer.append(record).unwrap();
+//! writer.append_value(record).unwrap();
 //!
 //! // this is how to get back the resulting avro bytecode
 //! // this performs a flush operation to make sure data has been written, so 
it can fail
@@ -357,7 +357,7 @@
 //! # let mut record = Record::new(writer.schema()).unwrap();
 //! # record.put("a", 27i64);
 //! # record.put("b", "foo");
-//! # writer.append(record).unwrap();
+//! # writer.append_value(record).unwrap();
 //! # let input = writer.into_inner().unwrap();
 //! // reader creation can fail in case the input to read from is not 
Avro-compatible or malformed
 //! let reader = Reader::new(&input[..]).unwrap();
@@ -386,7 +386,7 @@
 //! # let mut record = Record::new(writer.schema()).unwrap();
 //! # record.put("a", 27i64);
 //! # record.put("b", "foo");
-//! # writer.append(record).unwrap();
+//! # writer.append_value(record).unwrap();
 //! # let input = writer.into_inner().unwrap();
 //!
 //! let reader_raw_schema = r#"
@@ -446,7 +446,7 @@
 //! # let mut record = Record::new(writer.schema()).unwrap();
 //! # record.put("a", 27i64);
 //! # record.put("b", "foo");
-//! # writer.append(record).unwrap();
+//! # writer.append_value(record).unwrap();
 //! # let input = writer.into_inner().unwrap();
 //! let reader = Reader::new(&input[..]).unwrap();
 //!
@@ -539,7 +539,7 @@
 //!     record.put("a", 27i64);
 //!     record.put("b", "foo");
 //!
-//!     writer.append(record)?;
+//!     writer.append_value(record)?;
 //!
 //!     let test = Test {
 //!         a: 27,
@@ -676,7 +676,7 @@
 //!     record.put("local_timestamp_nanos", Value::LocalTimestampMicros(6));
 //!     record.put("duration", Duration::new(Months::new(6), Days::new(7), 
Millis::new(8)));
 //!
-//!     writer.append(record)?;
+//!     writer.append_value(record)?;
 //!
 //!     let input = writer.into_inner()?;
 //!     let reader = Reader::with_schema(&schema, &input[..])?;
@@ -1079,7 +1079,7 @@ mod tests {
         let mut record = Record::new(writer.schema()).unwrap();
         record.put("a", 27i64);
         record.put("b", "foo");
-        writer.append(record).unwrap();
+        writer.append_value(record).unwrap();
         let input = writer.into_inner().unwrap();
         let mut reader = Reader::with_schema(&reader_schema, 
&input[..]).unwrap();
         assert_eq!(
@@ -1121,7 +1121,7 @@ mod tests {
         record.put("a", 27i64);
         record.put("b", "foo");
         record.put("c", "clubs");
-        writer.append(record).unwrap();
+        writer.append_value(record).unwrap();
         let input = writer.into_inner().unwrap();
         let mut reader = Reader::with_schema(&schema, &input[..]).unwrap();
         assert_eq!(
@@ -1163,7 +1163,7 @@ mod tests {
         record.put("a", 27i64);
         record.put("b", "foo");
         record.put("c", "clubs");
-        writer.append(record).unwrap();
+        writer.append_value(record).unwrap();
         let input = writer.into_inner().unwrap();
         let mut reader = Reader::new(&input[..]).unwrap();
         assert_eq!(
diff --git a/avro/src/reader.rs b/avro/src/reader.rs
index fed35fe..3c3b740 100644
--- a/avro/src/reader.rs
+++ b/avro/src/reader.rs
@@ -826,8 +826,8 @@ mod tests {
         record.put("a", 27i64);
         record.put("b", "foo");
 
-        writer.append(record.clone())?;
-        writer.append(record.clone())?;
+        writer.append_value(record.clone())?;
+        writer.append_value(record.clone())?;
         writer.flush()?;
         let result = writer.into_inner()?;
 
diff --git a/avro/src/schema/mod.rs b/avro/src/schema/mod.rs
index 2f8bf6d..0ac4803 100644
--- a/avro/src/schema/mod.rs
+++ b/avro/src/schema/mod.rs
@@ -2911,7 +2911,7 @@ mod tests {
         let mut writer = crate::Writer::new(&schema, Vec::new())?;
 
         // schema validation happens here
-        writer.append(avro_value)?;
+        writer.append_value(avro_value)?;
 
         Ok(())
     }
diff --git a/avro/src/schema_compatibility.rs b/avro/src/schema_compatibility.rs
index 74ae558..9e62978 100644
--- a/avro/src/schema_compatibility.rs
+++ b/avro/src/schema_compatibility.rs
@@ -1288,7 +1288,7 @@ mod tests {
         record.put("a", 27i64);
         record.put("b", "foo");
         record.put("c", "clubs");
-        writer.append(record).unwrap();
+        writer.append_value(record).unwrap();
         let input = writer.into_inner()?;
         let mut reader = Reader::with_schema(&reader_schema, &input[..])?;
         assert_eq!(
@@ -1352,7 +1352,7 @@ mod tests {
         record.put("a", 27i64);
         record.put("b", "foo");
         record.put("c", "hearts");
-        writer.append(record).unwrap();
+        writer.append_value(record).unwrap();
         let input = writer.into_inner()?;
         let mut reader = Reader::with_schema(&reader_schema, &input[..])?;
         assert_eq!(
diff --git a/avro/src/writer.rs b/avro/src/writer.rs
index 1dd3fbf..32808d1 100644
--- a/avro/src/writer.rs
+++ b/avro/src/writer.rs
@@ -172,19 +172,22 @@ impl<'a, W: Write> Writer<'a, W> {
         self.schema
     }
 
-    /// Append a compatible value (implementing the `ToAvro` trait) to a 
`Writer`, also performing
-    /// schema validation.
+    /// Deprecated. Use [`Writer::append_value`] instead.
+    #[deprecated(since = "0.22.0", note = "Use `Writer::append_value` 
instead")]
+    pub fn append<T: Into<Value>>(&mut self, value: T) -> AvroResult<usize> {
+        self.append_value(value)
+    }
+
+    /// Append a compatible value to a `Writer`, also performing schema 
validation.
     ///
     /// Returns the number of bytes written (it might be 0, see below).
     ///
     /// **NOTE**: This function is not guaranteed to perform any actual write, 
since it relies on
     /// internal buffering for performance reasons. If you want to be sure the 
value has been
     /// written, then call [`flush`](Writer::flush).
-    pub fn append<T: Into<Value>>(&mut self, value: T) -> AvroResult<usize> {
-        let n = self.maybe_write_header()?;
-
+    pub fn append_value<T: Into<Value>>(&mut self, value: T) -> 
AvroResult<usize> {
         let avro = value.into();
-        self.append_value_ref(&avro).map(|m| m + n)
+        self.append_value_ref(&avro)
     }
 
     /// Append a compatible value to a `Writer`, also performing schema 
validation.
@@ -195,9 +198,58 @@ impl<'a, W: Write> Writer<'a, W> {
     /// internal buffering for performance reasons. If you want to be sure the 
value has been
     /// written, then call [`flush`](Writer::flush).
     pub fn append_value_ref(&mut self, value: &Value) -> AvroResult<usize> {
+        if let Some(reason) = value.validate_internal(
+            self.schema,
+            self.resolved_schema.get_names(),
+            &self.schema.namespace(),
+        ) {
+            return Err(Details::ValidationWithReason {
+                value: value.clone(),
+                schema: self.schema.clone(),
+                reason,
+            }
+            .into());
+        }
+        self.unvalidated_append_value_ref(value)
+    }
+
+    /// Append a compatible value to a `Writer`.
+    ///
+    /// This function does **not** validate that the provided value matches 
the schema. If it does
+    /// not match, the file will contain corrupt data. Use 
[`Writer::append_value`] to have the
+    /// value validated during write or use [`Value::validate`] to validate 
the value.
+    ///
+    /// Returns the number of bytes written (it might be 0, see below).
+    ///
+    /// **NOTE**: This function is not guaranteed to perform any actual write, 
since it relies on
+    /// internal buffering for performance reasons. If you want to be sure the 
value has been
+    /// written, then call [`flush`](Writer::flush).
+    pub fn unvalidated_append_value<T: Into<Value>>(&mut self, value: T) -> 
AvroResult<usize> {
+        let value = value.into();
+        self.unvalidated_append_value_ref(&value)
+    }
+
+    /// Append a compatible value to a `Writer`.
+    ///
+    /// This function does **not** validate that the provided value matches 
the schema. If it does
+    /// not match, the file will contain corrupt data. Use 
[`Writer::append_value_ref`] to have the
+    /// value validated during write or use [`Value::validate`] to validate 
the value.
+    ///
+    /// Returns the number of bytes written (it might be 0, see below).
+    ///
+    /// **NOTE**: This function is not guaranteed to perform any actual write, 
since it relies on
+    /// internal buffering for performance reasons. If you want to be sure the 
value has been
+    /// written, then call [`flush`](Writer::flush).
+    pub fn unvalidated_append_value_ref(&mut self, value: &Value) -> 
AvroResult<usize> {
         let n = self.maybe_write_header()?;
+        encode_internal(
+            value,
+            self.schema,
+            self.resolved_schema.get_names(),
+            &self.schema.namespace(),
+            &mut self.buffer,
+        )?;
 
-        write_value_ref_resolved(self.schema, &self.resolved_schema, value, 
&mut self.buffer)?;
         self.num_values += 1;
 
         if self.buffer.len() >= self.block_size {
@@ -262,7 +314,7 @@ impl<'a, W: Write> Writer<'a, W> {
 
         let mut num_bytes = 0;
         for value in values {
-            num_bytes += self.append(value)?;
+            num_bytes += self.append_value(value)?;
         }
         num_bytes += self.flush()?;
 
@@ -688,29 +740,6 @@ where
     }
 }
 
-fn write_value_ref_resolved(
-    schema: &Schema,
-    resolved_schema: &ResolvedSchema,
-    value: &Value,
-    buffer: &mut Vec<u8>,
-) -> AvroResult<usize> {
-    match value.validate_internal(schema, resolved_schema.get_names(), 
&schema.namespace()) {
-        Some(reason) => Err(Details::ValidationWithReason {
-            value: value.clone(),
-            schema: schema.clone(),
-            reason,
-        }
-        .into()),
-        None => encode_internal(
-            value,
-            schema,
-            resolved_schema.get_names(),
-            &schema.namespace(),
-            buffer,
-        ),
-    }
-}
-
 fn write_value_ref_owned_resolved<W: Write>(
     resolved_schema: &ResolvedOwnedSchema,
     value: &Value,
@@ -1101,8 +1130,8 @@ mod tests {
         record.put("a", 27i64);
         record.put("b", "foo");
 
-        let n1 = writer.append(record.clone())?;
-        let n2 = writer.append(record.clone())?;
+        let n1 = writer.append_value(record.clone())?;
+        let n2 = writer.append_value(record.clone())?;
         let n3 = writer.flush()?;
         let result = writer.into_inner()?;
 
@@ -1258,8 +1287,8 @@ mod tests {
         record.put("a", 27i64);
         record.put("b", "foo");
 
-        let n1 = writer.append(record.clone())?;
-        let n2 = writer.append(record.clone())?;
+        let n1 = writer.append_value(record.clone())?;
+        let n2 = writer.append_value(record.clone())?;
         let n3 = writer.flush()?;
         let result = writer.into_inner()?;
 
@@ -1335,8 +1364,8 @@ mod tests {
         let mut record2 = Record::new(&schema).unwrap();
         record2.put("a", Value::Union(0, Box::new(Value::Null)));
 
-        let n1 = writer.append(record1)?;
-        let n2 = writer.append(record2)?;
+        let n1 = writer.append_value(record1)?;
+        let n2 = writer.append_value(record2)?;
         let n3 = writer.flush()?;
         let result = writer.into_inner()?;
 
@@ -1377,8 +1406,8 @@ mod tests {
         record.put("a", 27i64);
         record.put("b", "foo");
 
-        writer.append(record.clone())?;
-        writer.append(record.clone())?;
+        writer.append_value(record.clone())?;
+        writer.append_value(record.clone())?;
         writer.flush()?;
         let result = writer.into_inner()?;
 
@@ -1411,7 +1440,7 @@ mod tests {
         let mut record = Record::new(&schema).unwrap();
         record.put("a", 27i64);
         record.put("b", "foo");
-        writer.append(record.clone())?;
+        writer.append_value(record.clone())?;
 
         match writer
             .add_user_metadata("stringKey".to_string(), String::from("value2"))
@@ -1749,7 +1778,7 @@ mod tests {
         let mut record = Record::new(writer.schema()).unwrap();
         record.put("exampleField", "value");
 
-        writer.append(record)?;
+        writer.append_value(record)?;
         writer.flush()?;
 
         assert_eq!(
@@ -1805,4 +1834,33 @@ mod tests {
 
         Ok(())
     }
+
+    #[test]
+    fn avro_rs_310_append_unvalidated_value() -> TestResult {
+        let schema = Schema::String;
+        let value = Value::Int(1);
+
+        let mut writer = Writer::new(&schema, Vec::new())?;
+        writer.unvalidated_append_value_ref(&value)?;
+        writer.unvalidated_append_value(value)?;
+        let buffer = writer.into_inner()?;
+
+        // Check the last two bytes for the sync marker
+        assert_eq!(&buffer[buffer.len() - 18..buffer.len() - 16], &[2, 2]);
+
+        let mut writer = Writer::new(&schema, Vec::new())?;
+        let value = Value::Int(1);
+        let err = writer.append_value_ref(&value).unwrap_err();
+        assert_eq!(
+            err.to_string(),
+            "Value Int(1) does not match schema String: Reason: Unsupported 
value-schema combination! Value: Int(1), schema: String"
+        );
+        let err = writer.append_value(value).unwrap_err();
+        assert_eq!(
+            err.to_string(),
+            "Value Int(1) does not match schema String: Reason: Unsupported 
value-schema combination! Value: Int(1), schema: String"
+        );
+
+        Ok(())
+    }
 }
diff --git a/avro/tests/append_to_existing.rs b/avro/tests/append_to_existing.rs
index ad702f8..ef5723e 100644
--- a/avro/tests/append_to_existing.rs
+++ b/avro/tests/append_to_existing.rs
@@ -40,7 +40,7 @@ fn avro_3630_append_to_an_existing_file() -> TestResult {
     let mut writer = Writer::append_to(&schema, bytes, marker)?;
 
     writer
-        .append(create_datum(&schema, 2))
+        .append_value(create_datum(&schema, 2))
         .expect("An error occurred while appending more data");
 
     let new_bytes = writer.into_inner().expect("Cannot get the new bytes");
@@ -63,7 +63,7 @@ fn avro_4031_append_to_file_using_multiple_writers() -> 
TestResult {
         .schema(&schema)
         .writer(Vec::new())
         .build()?;
-    first_writer.append(create_datum(&schema, -42))?;
+    first_writer.append_value(create_datum(&schema, -42))?;
     let mut resulting_bytes = first_writer.into_inner()?;
     let first_marker = read_marker(&resulting_bytes);
 
@@ -73,7 +73,7 @@ fn avro_4031_append_to_file_using_multiple_writers() -> 
TestResult {
         .marker(first_marker)
         .writer(Vec::new())
         .build()?;
-    second_writer.append(create_datum(&schema, 42))?;
+    second_writer.append_value(create_datum(&schema, 42))?;
     resulting_bytes.append(&mut second_writer.into_inner()?);
 
     let values: Vec<_> = Reader::new(&resulting_bytes[..])?.collect();
@@ -86,7 +86,7 @@ fn avro_4031_append_to_file_using_multiple_writers() -> 
TestResult {
 fn get_avro_bytes(schema: &Schema) -> Vec<u8> {
     let mut writer = Writer::new(schema, Vec::new()).unwrap();
     writer
-        .append(create_datum(schema, 1))
+        .append_value(create_datum(schema, 1))
         .expect("An error while appending data");
     writer.into_inner().expect("Cannot get the Avro bytes")
 }
diff --git a/avro/tests/codecs.rs b/avro/tests/codecs.rs
index 89471f4..b4e9f99 100644
--- a/avro/tests/codecs.rs
+++ b/avro/tests/codecs.rs
@@ -76,7 +76,7 @@ fn avro_4032_codec_settings(codec: Codec) -> TestResult {
     let mut record = Record::new(writer.schema()).unwrap();
     record.put("f1", 27_i32);
     record.put("f2", "foo");
-    writer.append(record)?;
+    writer.append_value(record)?;
     let input = writer.into_inner()?;
     let mut reader = Reader::new(&input[..])?;
     assert_eq!(
diff --git a/avro/tests/schema.rs b/avro/tests/schema.rs
index e986848..04f0d25 100644
--- a/avro/tests/schema.rs
+++ b/avro/tests/schema.rs
@@ -814,7 +814,7 @@ fn test_record_schema_with_cyclic_references() -> 
TestResult {
     );
 
     let mut writer = Writer::with_codec(&schema, Vec::new(), Codec::Null)?;
-    if let Err(err) = writer.append(datum) {
+    if let Err(err) = writer.append_value(datum) {
         panic!("An error occurred while writing datum: {err:?}")
     }
     let bytes = writer.into_inner()?;
@@ -1027,7 +1027,7 @@ fn test_avro_3847_union_field_with_default_value_of_ref() 
-> TestResult {
     let mut writer = Writer::new(&writer_schema, Vec::new())?;
     let mut record = Record::new(writer.schema()).ok_or("Expected 
Some(Record), but got None")?;
     record.put("f1", Value::Record(vec![("f1_1".to_string(), 10.into())]));
-    writer.append(record)?;
+    writer.append_value(record)?;
 
     let reader_schema_str = r#"
     {
@@ -1100,7 +1100,7 @@ fn test_avro_3847_union_field_with_default_value_of_ref() 
-> TestResult {
     let mut writer = Writer::new(&writer_schema, Vec::new())?;
     let mut record = Record::new(writer.schema()).ok_or("Expected 
Some(Record), but got None")?;
     record.put("f1", Value::Enum(1, "b".to_string()));
-    writer.append(record)?;
+    writer.append_value(record)?;
 
     let reader_schema_str = r#"
     {
@@ -1160,7 +1160,7 @@ fn test_avro_3847_union_field_with_default_value_of_ref() 
-> TestResult {
     let mut writer = Writer::new(&writer_schema, Vec::new())?;
     let mut record = Record::new(writer.schema()).ok_or("Expected 
Some(Record), but got None")?;
     record.put("f1", Value::Fixed(3, vec![0, 1, 2]));
-    writer.append(record)?;
+    writer.append_value(record)?;
 
     let reader_schema_str = r#"
     {
@@ -1231,7 +1231,7 @@ fn 
test_avro_3847_union_field_with_default_value_of_ref_with_namespace() -> Test
     let mut writer = Writer::new(&writer_schema, Vec::new())?;
     let mut record = Record::new(writer.schema()).ok_or("Expected 
Some(Record), but got None")?;
     record.put("f1", Value::Record(vec![("f1_1".to_string(), 10.into())]));
-    writer.append(record)?;
+    writer.append_value(record)?;
 
     let reader_schema_str = r#"
     {
@@ -1306,7 +1306,7 @@ fn 
test_avro_3847_union_field_with_default_value_of_ref_with_namespace() -> Test
     let mut writer = Writer::new(&writer_schema, Vec::new())?;
     let mut record = Record::new(writer.schema()).ok_or("Expected 
Some(Record), but got None")?;
     record.put("f1", Value::Enum(1, "b".to_string()));
-    writer.append(record)?;
+    writer.append_value(record)?;
 
     let reader_schema_str = r#"
     {
@@ -1368,7 +1368,7 @@ fn 
test_avro_3847_union_field_with_default_value_of_ref_with_namespace() -> Test
     let mut writer = Writer::new(&writer_schema, Vec::new())?;
     let mut record = Record::new(writer.schema()).ok_or("Expected 
Some(Record), but got None")?;
     record.put("f1", Value::Fixed(3, vec![0, 1, 2]));
-    writer.append(record)?;
+    writer.append_value(record)?;
 
     let reader_schema_str = r#"
     {
@@ -1440,7 +1440,7 @@ fn 
test_avro_3847_union_field_with_default_value_of_ref_with_enclosing_namespace
     let mut writer = Writer::new(&writer_schema, Vec::new())?;
     let mut record = Record::new(writer.schema()).ok_or("Expected 
Some(Record), but got None")?;
     record.put("f1", Value::Record(vec![("f1_1".to_string(), 10.into())]));
-    writer.append(record)?;
+    writer.append_value(record)?;
 
     let reader_schema_str = r#"
     {
@@ -1515,7 +1515,7 @@ fn 
test_avro_3847_union_field_with_default_value_of_ref_with_enclosing_namespace
     let mut writer = Writer::new(&writer_schema, Vec::new())?;
     let mut record = Record::new(writer.schema()).ok_or("Expected 
Some(Record), but got None")?;
     record.put("f1", Value::Enum(1, "b".to_string()));
-    writer.append(record)?;
+    writer.append_value(record)?;
 
     let reader_schema_str = r#"
     {
@@ -1577,7 +1577,7 @@ fn 
test_avro_3847_union_field_with_default_value_of_ref_with_enclosing_namespace
     let mut writer = Writer::new(&writer_schema, Vec::new())?;
     let mut record = Record::new(writer.schema()).ok_or("Expected 
Some(Record), but got None")?;
     record.put("f1", Value::Fixed(3, vec![0, 1, 2]));
-    writer.append(record)?;
+    writer.append_value(record)?;
 
     let reader_schema_str = r#"
     {
@@ -1640,7 +1640,7 @@ fn write_schema_for_default_value_test() -> 
apache_avro::AvroResult<Vec<u8>> {
         .ok_or("Expected Some(Record), but got None")
         .unwrap();
     record.put("f1", 10);
-    writer.append(record)?;
+    writer.append_value(record)?;
 
     writer.into_inner()
 }
@@ -1921,7 +1921,7 @@ fn 
test_avro_3851_read_default_value_for_ref_record_field() -> TestResult {
     let mut writer = Writer::new(&writer_schema, Vec::new())?;
     let mut record = Record::new(writer.schema()).ok_or("Expected 
Some(Record), but got None")?;
     record.put("f1", Value::Record(vec![("f1_1".to_string(), 10.into())]));
-    writer.append(record)?;
+    writer.append_value(record)?;
 
     let reader_schema_str = r#"
     {
@@ -1984,7 +1984,7 @@ fn test_avro_3851_read_default_value_for_enum() -> 
TestResult {
     "#;
     let writer_schema = Schema::parse_str(writer_schema_str)?;
     let mut writer = Writer::new(&writer_schema, Vec::new())?;
-    writer.append("c")?;
+    writer.append_value("c")?;
 
     let reader_schema_str = r#"
     {
@@ -2351,7 +2351,7 @@ fn avro_rs_181_single_null_record() -> TestResult {
     let mut buff = Cursor::new(Vec::new());
     let schema = Schema::parse_str(r#""null""#)?;
     let mut writer = Writer::new(&schema, &mut buff)?;
-    writer.append(serde_json::Value::Null)?;
+    writer.append_value(serde_json::Value::Null)?;
     writer.into_inner()?;
     buff.set_position(0);
 
diff --git a/avro/tests/shared.rs b/avro/tests/shared.rs
index b240983..c0a51b6 100644
--- a/avro/tests/shared.rs
+++ b/avro/tests/shared.rs
@@ -120,7 +120,9 @@ fn test_folder(folder: &Path) -> Result<(), ErrorsDesc> {
 
         for r in reader {
             let record: Value = r.expect("Error on reading");
-            writer.append(record.clone()).expect("Error on write item");
+            writer
+                .append_value(record.clone())
+                .expect("Error on write item");
             records.push(record);
         }
 
diff --git a/avro/tests/to_from_avro_datum_schemata.rs 
b/avro/tests/to_from_avro_datum_schemata.rs
index b5389fe..8617c56 100644
--- a/avro/tests/to_from_avro_datum_schemata.rs
+++ b/avro/tests/to_from_avro_datum_schemata.rs
@@ -108,7 +108,7 @@ fn test_avro_3683_multiple_schemata_writer_reader() -> 
TestResult {
     let mut output: Vec<u8> = Vec::new();
 
     let mut writer = Writer::with_schemata(schema_b, schemata.clone(), &mut 
output, Codec::Null)?;
-    writer.append(record.clone())?;
+    writer.append_value(record.clone())?;
     writer.flush()?;
     drop(writer); //drop the writer so that `output` is no more referenced 
mutably
 
diff --git a/wasm-demo/tests/demos.rs b/wasm-demo/tests/demos.rs
index 6bd0842..b423bb7 100644
--- a/wasm-demo/tests/demos.rs
+++ b/wasm-demo/tests/demos.rs
@@ -70,7 +70,7 @@ fn write_read() {
         Codec::Null,
     )
     .unwrap();
-    writer.append(record).unwrap();
+    writer.append_value(record).unwrap();
     writer.flush().unwrap();
     let bytes = writer.into_inner().unwrap().into_inner().unwrap();
 

Reply via email to