This is an automated email from the ASF dual-hosted git repository.
mgrigorov pushed a commit to branch avro-3631/fix-fixed-serialization
in repository https://gitbox.apache.org/repos/asf/avro.git
The following commit(s) were added to
refs/heads/avro-3631/fix-fixed-serialization by this push:
new 3e3f125eb AVRO-3631: Use #[serde(with)] attribute to get rid of
implementation detail ByteArray
3e3f125eb is described below
commit 3e3f125ebfd1526eb8ba627e1e6f72c9137d11b7
Author: Martin Tzvetanov Grigorov <[email protected]>
AuthorDate: Mon Oct 3 23:45:11 2022 +0300
AVRO-3631: Use #[serde(with)] attribute to get rid of implementation detail
ByteArray
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
---
lang/rust/avro/src/de.rs | 4 ++--
lang/rust/avro/src/ser.rs | 18 ++++++++----------
lang/rust/avro/src/types.rs | 8 +++-----
3 files changed, 13 insertions(+), 17 deletions(-)
diff --git a/lang/rust/avro/src/de.rs b/lang/rust/avro/src/de.rs
index 317f43be2..51f257e6b 100644
--- a/lang/rust/avro/src/de.rs
+++ b/lang/rust/avro/src/de.rs
@@ -595,7 +595,6 @@ pub fn from_value<'de, D: Deserialize<'de>>(value: &'de
Value) -> Result<D, Erro
mod tests {
use pretty_assertions::assert_eq;
use serde::Serialize;
- use serde_bytes::ByteArray;
use uuid::Uuid;
use super::*;
@@ -1068,7 +1067,8 @@ mod tests {
fn avro_3631_test_struct_fixed_field() {
#[derive(Debug, Serialize, Deserialize)]
struct TestStructFixedField {
- field: ByteArray<6>,
+ #[serde(with = "serde_bytes")]
+ field: [u8; 6],
}
let value = Value::Record(vec![(
diff --git a/lang/rust/avro/src/ser.rs b/lang/rust/avro/src/ser.rs
index fb26cb183..af286640d 100644
--- a/lang/rust/avro/src/ser.rs
+++ b/lang/rust/avro/src/ser.rs
@@ -487,7 +487,6 @@ mod tests {
use super::*;
use pretty_assertions::assert_eq;
use serde::{Deserialize, Serialize};
- use serde_bytes::ByteArray;
#[derive(Debug, Deserialize, Serialize, Clone)]
struct Test {
@@ -678,11 +677,6 @@ mod tests {
Val2(f32, f32, f32),
}
- #[derive(Debug, Serialize, Deserialize)]
- struct TestStructFixedField {
- field: ByteArray<6>,
- }
-
#[test]
fn test_to_value() {
let test = Test {
@@ -1007,12 +1001,16 @@ mod tests {
#[test]
fn avro_3631_test_to_value_fixed_field() {
- let test = TestStructFixedField {
- field: ByteArray::new([1; 6]),
- };
+ #[derive(Debug, Serialize, Deserialize)]
+ struct TestStructFixedField {
+ #[serde(with = "serde_bytes")]
+ field: [u8; 6],
+ }
+
+ let test = TestStructFixedField { field: [1; 6] };
let expected = Value::Record(vec![(
"field".to_owned(),
- Value::Fixed(6, Vec::from(test.field.clone().into_array())),
+ Value::Fixed(6, Vec::from(test.field.clone())),
)]);
assert_eq!(
expected,
diff --git a/lang/rust/avro/src/types.rs b/lang/rust/avro/src/types.rs
index f1cd75ba5..2b5dc56cd 100644
--- a/lang/rust/avro/src/types.rs
+++ b/lang/rust/avro/src/types.rs
@@ -958,7 +958,6 @@ mod tests {
use apache_avro_test_helper::logger::{assert_logged, assert_not_logged};
use pretty_assertions::assert_eq;
use serde::{Deserialize, Serialize};
- use serde_bytes::ByteArray;
use uuid::Uuid;
#[test]
@@ -2399,12 +2398,11 @@ Field with name '"b"' is not a member of the map
items"#,
fn avro_3631_test_serialize_fixed_fields() {
#[derive(Debug, Serialize, Deserialize)]
struct TestStructFixedField {
- field: ByteArray<6>,
+ #[serde(with = "serde_bytes")]
+ field: [u8; 6],
}
- let test = TestStructFixedField {
- field: ByteArray::new([1; 6]),
- };
+ let test = TestStructFixedField { field: [1; 6] };
let value: Value = to_value(test).unwrap();
let schema = Schema::parse_str(
r#"