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