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

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


The following commit(s) were added to refs/heads/feat/enums by this push:
     new 63ad659  fix with
63ad659 is described below

commit 63ad659b015472a136b9d6089e3af21704a55e49
Author: default <[email protected]>
AuthorDate: Wed Mar 11 20:54:50 2026 +0000

    fix with
---
 avro/src/serde/derive.rs    |  7 ++-----
 avro/src/serde/with.rs      | 38 +++++++++++++-------------------------
 avro_derive/tests/derive.rs |  2 +-
 avro_derive/tests/serde.rs  |  2 +-
 4 files changed, 17 insertions(+), 32 deletions(-)

diff --git a/avro/src/serde/derive.rs b/avro/src/serde/derive.rs
index 68653bf..8ffc3de 100644
--- a/avro/src/serde/derive.rs
+++ b/avro/src/serde/derive.rs
@@ -17,7 +17,7 @@
 
 use crate::Schema;
 use crate::schema::{
-    FixedSchema, Name, NamespaceRef, RecordField, RecordSchema, UnionSchema, 
UuidSchema
+    FixedSchema, Name, NamespaceRef, RecordField, RecordSchema, UnionSchema, 
UuidSchema,
 };
 use std::borrow::Cow;
 use std::collections::{HashMap, HashSet};
@@ -808,10 +808,7 @@ mod tests {
         let schema = <Option<&[u8]>>::get_schema();
         assert_eq!(
             schema,
-            Schema::union(vec![
-                Schema::Null,
-                Schema::array(Schema::Int).build()
-            ])?
+            Schema::union(vec![Schema::Null, 
Schema::array(Schema::Int).build()])?
         );
 
         Ok(())
diff --git a/avro/src/serde/with.rs b/avro/src/serde/with.rs
index 76e7695..f43ea08 100644
--- a/avro/src/serde/with.rs
+++ b/avro/src/serde/with.rs
@@ -111,7 +111,6 @@ pub mod bytes {
 
     /// Returns `None`
     pub fn get_record_fields_in_ctxt(
-        _: usize,
         _: &mut HashSet<Name>,
         _: NamespaceRef,
     ) -> Option<Vec<RecordField>> {
@@ -179,7 +178,6 @@ pub mod bytes_opt {
 
     /// Returns `None`
     pub fn get_record_fields_in_ctxt(
-        _: usize,
         _: &mut HashSet<Name>,
         _: NamespaceRef,
     ) -> Option<Vec<RecordField>> {
@@ -260,10 +258,7 @@ pub mod fixed {
     }
 
     /// Returns `None`
-    pub fn get_record_fields_in_ctxt(
-        _: &mut HashSet<Name>,
-        _: NamespaceRef,
-    ) -> Option<Vec<RecordField>> {
+    pub fn get_record_fields_in_ctxt(_: NamespaceRef) -> 
Option<Vec<RecordField>> {
         None
     }
 
@@ -335,7 +330,6 @@ pub mod fixed_opt {
 
     /// Returns `None`
     pub fn get_record_fields_in_ctxt(
-        _: usize,
         _: &mut HashSet<Name>,
         _: NamespaceRef,
     ) -> Option<Vec<RecordField>> {
@@ -405,7 +399,6 @@ pub mod slice {
 
     /// Returns `None`
     pub fn get_record_fields_in_ctxt(
-        _: usize,
         _: &mut HashSet<Name>,
         _: NamespaceRef,
     ) -> Option<Vec<RecordField>> {
@@ -476,7 +469,6 @@ pub mod slice_opt {
 
     /// Returns `None`
     pub fn get_record_fields_in_ctxt(
-        _: usize,
         _: &mut HashSet<Name>,
         _: NamespaceRef,
     ) -> Option<Vec<RecordField>> {
@@ -534,20 +526,19 @@ pub mod bigdecimal {
     use crate::{
         Schema,
         bigdecimal::{big_decimal_as_bytes, deserialize_big_decimal},
-        schema::{Name, Namespace, RecordField},
+        schema::{Name, NamespaceRef, RecordField},
         serde::with::BytesType,
     };
 
     /// Returns [`Schema::BigDecimal`]
-    pub fn get_schema_in_ctxt(_: &mut HashSet<Name>, _: &Namespace) -> Schema {
+    pub fn get_schema_in_ctxt(_: &mut HashSet<Name>, _: NamespaceRef) -> 
Schema {
         Schema::BigDecimal
     }
 
     /// Returns `None`
     pub fn get_record_fields_in_ctxt(
-        _: usize,
         _: &mut HashSet<Name>,
-        _: &Namespace,
+        _: NamespaceRef,
     ) -> Option<Vec<RecordField>> {
         None
     }
@@ -604,12 +595,12 @@ pub mod bigdecimal_opt {
     use crate::{
         Schema,
         bigdecimal::{big_decimal_as_bytes, deserialize_big_decimal},
-        schema::{Name, Namespace, RecordField, UnionSchema},
+        schema::{Name, NamespaceRef, RecordField, UnionSchema},
         serde::with::BytesType,
     };
 
     /// Returns `Schema::Union(Schema::Null, Schema::BigDecimal)`
-    pub fn get_schema_in_ctxt(_: &mut HashSet<Name>, _: &Namespace) -> Schema {
+    pub fn get_schema_in_ctxt(_: &mut HashSet<Name>, _: NamespaceRef) -> 
Schema {
         Schema::Union(
             UnionSchema::new(vec![Schema::Null, Schema::BigDecimal])
                 .expect("This is a valid union"),
@@ -618,9 +609,8 @@ pub mod bigdecimal_opt {
 
     /// Returns `None`
     pub fn get_record_fields_in_ctxt(
-        _: usize,
         _: &mut HashSet<Name>,
-        _: &Namespace,
+        _: NamespaceRef,
     ) -> Option<Vec<RecordField>> {
         None
     }
@@ -678,7 +668,7 @@ pub mod bigdecimal_opt {
 pub mod array {
     use crate::{
         AvroSchema, AvroSchemaComponent, Schema,
-        schema::{Name, Namespace, RecordField},
+        schema::{Name, NamespaceRef, RecordField},
     };
     use serde::de::DeserializeOwned;
     use serde::{Deserialize, Deserializer, Serialize, Serializer, de::Error as 
_};
@@ -687,16 +677,15 @@ pub mod array {
     /// Returns `Schema::Array(T::get_schema())`
     pub fn get_schema_in_ctxt<T: AvroSchemaComponent>(
         _: &mut HashSet<Name>,
-        _: &Namespace,
+        _: NamespaceRef,
     ) -> Schema {
         Schema::array(T::get_schema()).build()
     }
 
     /// Returns `None`
     pub fn get_record_fields_in_ctxt(
-        _: usize,
         _: &mut HashSet<Name>,
-        _: &Namespace,
+        _: NamespaceRef,
     ) -> Option<Vec<RecordField>> {
         None
     }
@@ -751,13 +740,13 @@ pub mod array_opt {
 
     use crate::{
         AvroSchema, AvroSchemaComponent, Schema,
-        schema::{Name, Namespace, RecordField, UnionSchema},
+        schema::{Name, NamespaceRef, RecordField, UnionSchema},
     };
 
     /// Returns `Schema::Union(Schema::Null, Schema::Array(T::get_schema()))`
     pub fn get_schema_in_ctxt<T: AvroSchemaComponent>(
         _: &mut HashSet<Name>,
-        _: &Namespace,
+        _: NamespaceRef,
     ) -> Schema {
         Schema::Union(
             UnionSchema::new(vec![Schema::Null, 
Schema::array(T::get_schema()).build()])
@@ -767,9 +756,8 @@ pub mod array_opt {
 
     /// Returns `None`
     pub fn get_record_fields_in_ctxt(
-        _: usize,
         _: &mut HashSet<Name>,
-        _: &Namespace,
+        _: NamespaceRef,
     ) -> Option<Vec<RecordField>> {
         None
     }
diff --git a/avro_derive/tests/derive.rs b/avro_derive/tests/derive.rs
index 1e261bd..77184bb 100644
--- a/avro_derive/tests/derive.rs
+++ b/avro_derive/tests/derive.rs
@@ -2102,7 +2102,7 @@ fn avro_rs_401_supported_type_variants() {
         three: &'static i32,
         four: &'a str,
         five: &'a mut f64,
-        #[avro(with)]
+        #[avro(with = apache_avro::serde::array::get_schema_in_ctxt::<u8>)]
         #[serde(with = "apache_avro::serde::array")]
         six: [u8; 5],
         seven: [u8],
diff --git a/avro_derive/tests/serde.rs b/avro_derive/tests/serde.rs
index 7c4c2f4..a650dc6 100644
--- a/avro_derive/tests/serde.rs
+++ b/avro_derive/tests/serde.rs
@@ -586,7 +586,7 @@ mod field_attributes {
             #[avro(with = apache_avro::serde::fixed::get_schema_in_ctxt::<6>)]
             #[serde(with = "apache_avro::serde::fixed")]
             fixed_field: [u8; 6],
-            #[avro(with = 
apache_avro::serde::fixed_opt::get_schema_in_ctxt::<7>)]
+            #[avro(with = 
apache_avro::serde::fixed_opt::get_schema_in_ctxt::<7>, default = false)]
             #[serde(with = "apache_avro::serde::fixed_opt")]
             fixed_field_opt: Option<[u8; 7]>,
 

Reply via email to