From 727bcb5fcf4dfe1f481a04ad5787cfcb1206192d Mon Sep 17 00:00:00 2001 From: Romain Leroux Date: Fri, 1 Sep 2023 13:22:10 +0200 Subject: [PATCH] Release 0.12.2 --- Cargo.lock | 2 +- Cargo.toml | 2 +- tests/generation.rs | 5 +++++ tests/schemas/enums_casing.avsc | 25 +++++++++++++++++++++++++ tests/schemas/enums_casing.rs | 17 +++++++++++++++++ tests/schemas/mod.rs | 1 + 6 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 tests/schemas/enums_casing.avsc create mode 100644 tests/schemas/enums_casing.rs diff --git a/Cargo.lock b/Cargo.lock index 518e702..0c0619a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -735,7 +735,7 @@ checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" [[package]] name = "rsgen-avro" -version = "0.12.1" +version = "0.12.2" dependencies = [ "apache-avro", "chrono", diff --git a/Cargo.toml b/Cargo.toml index 1284844..a155735 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rsgen-avro" -version = "0.12.1" +version = "0.12.2" authors = ["Romain Leroux "] edition = "2021" description = "Command line and library for generating Rust types from Avro schemas" diff --git a/tests/generation.rs b/tests/generation.rs index f8a3370..2cd7510 100644 --- a/tests/generation.rs +++ b/tests/generation.rs @@ -168,6 +168,11 @@ fn gen_enums() { validate_generation("enums", Generator::new().unwrap()); } +#[test] +fn gen_enums_casing() { + validate_generation("enums_casing", Generator::new().unwrap()); +} + #[test] fn gen_enums_multiline_doc() { validate_generation("enums_multiline_doc", Generator::new().unwrap()); diff --git a/tests/schemas/enums_casing.avsc b/tests/schemas/enums_casing.avsc new file mode 100644 index 0000000..f41c054 --- /dev/null +++ b/tests/schemas/enums_casing.avsc @@ -0,0 +1,25 @@ +{ + "type": "record", + "name": "MyRecord", + "namespace": "com.example.data", + "doc": "Record doc", + "fields": [ + { + "name": "id", + "type": "int", + "doc": "Identifier" + }, + { + "name": "unit", + "type": { + "type": "enum", + "name": "MeasurementUnit", + "symbols": [ + "mJ" + ] + }, + "doc": "Measurement unit", + "default": "mJ" + } + ] +} diff --git a/tests/schemas/enums_casing.rs b/tests/schemas/enums_casing.rs new file mode 100644 index 0000000..d7dbc36 --- /dev/null +++ b/tests/schemas/enums_casing.rs @@ -0,0 +1,17 @@ + +#[derive(Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Clone, serde::Deserialize, serde::Serialize)] +pub enum MeasurementUnit { + #[serde(rename = "mJ")] + MJ, +} + +/// Record doc +#[derive(Debug, PartialEq, Eq, Clone, serde::Deserialize, serde::Serialize)] +pub struct MyRecord { + pub id: i32, + #[serde(default = "default_myrecord_unit")] + pub unit: MeasurementUnit, +} + +#[inline(always)] +fn default_myrecord_unit() -> MeasurementUnit { MeasurementUnit::MJ } diff --git a/tests/schemas/mod.rs b/tests/schemas/mod.rs index 2b01ab2..483f1fc 100644 --- a/tests/schemas/mod.rs +++ b/tests/schemas/mod.rs @@ -1,5 +1,6 @@ pub mod complex; pub mod enums; +pub mod enums_casing; pub mod enums_multiline_doc; pub mod enums_sanitize; #[allow(dead_code)]