Skip to content

Commit 3e3f125

Browse files
committed
AVRO-3631: Use #[serde(with)] attribute to get rid of implementation detail ByteArray
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
1 parent 7b1cdd8 commit 3e3f125

File tree

3 files changed

+13
-17
lines changed

3 files changed

+13
-17
lines changed

lang/rust/avro/src/de.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,6 @@ pub fn from_value<'de, D: Deserialize<'de>>(value: &'de Value) -> Result<D, Erro
595595
mod tests {
596596
use pretty_assertions::assert_eq;
597597
use serde::Serialize;
598-
use serde_bytes::ByteArray;
599598
use uuid::Uuid;
600599

601600
use super::*;
@@ -1068,7 +1067,8 @@ mod tests {
10681067
fn avro_3631_test_struct_fixed_field() {
10691068
#[derive(Debug, Serialize, Deserialize)]
10701069
struct TestStructFixedField {
1071-
field: ByteArray<6>,
1070+
#[serde(with = "serde_bytes")]
1071+
field: [u8; 6],
10721072
}
10731073

10741074
let value = Value::Record(vec![(

lang/rust/avro/src/ser.rs

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,6 @@ mod tests {
487487
use super::*;
488488
use pretty_assertions::assert_eq;
489489
use serde::{Deserialize, Serialize};
490-
use serde_bytes::ByteArray;
491490

492491
#[derive(Debug, Deserialize, Serialize, Clone)]
493492
struct Test {
@@ -678,11 +677,6 @@ mod tests {
678677
Val2(f32, f32, f32),
679678
}
680679

681-
#[derive(Debug, Serialize, Deserialize)]
682-
struct TestStructFixedField {
683-
field: ByteArray<6>,
684-
}
685-
686680
#[test]
687681
fn test_to_value() {
688682
let test = Test {
@@ -1007,12 +1001,16 @@ mod tests {
10071001

10081002
#[test]
10091003
fn avro_3631_test_to_value_fixed_field() {
1010-
let test = TestStructFixedField {
1011-
field: ByteArray::new([1; 6]),
1012-
};
1004+
#[derive(Debug, Serialize, Deserialize)]
1005+
struct TestStructFixedField {
1006+
#[serde(with = "serde_bytes")]
1007+
field: [u8; 6],
1008+
}
1009+
1010+
let test = TestStructFixedField { field: [1; 6] };
10131011
let expected = Value::Record(vec![(
10141012
"field".to_owned(),
1015-
Value::Fixed(6, Vec::from(test.field.clone().into_array())),
1013+
Value::Fixed(6, Vec::from(test.field.clone())),
10161014
)]);
10171015
assert_eq!(
10181016
expected,

lang/rust/avro/src/types.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -958,7 +958,6 @@ mod tests {
958958
use apache_avro_test_helper::logger::{assert_logged, assert_not_logged};
959959
use pretty_assertions::assert_eq;
960960
use serde::{Deserialize, Serialize};
961-
use serde_bytes::ByteArray;
962961
use uuid::Uuid;
963962

964963
#[test]
@@ -2399,12 +2398,11 @@ Field with name '"b"' is not a member of the map items"#,
23992398
fn avro_3631_test_serialize_fixed_fields() {
24002399
#[derive(Debug, Serialize, Deserialize)]
24012400
struct TestStructFixedField {
2402-
field: ByteArray<6>,
2401+
#[serde(with = "serde_bytes")]
2402+
field: [u8; 6],
24032403
}
24042404

2405-
let test = TestStructFixedField {
2406-
field: ByteArray::new([1; 6]),
2407-
};
2405+
let test = TestStructFixedField { field: [1; 6] };
24082406
let value: Value = to_value(test).unwrap();
24092407
let schema = Schema::parse_str(
24102408
r#"

0 commit comments

Comments
 (0)