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

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


The following commit(s) were added to refs/heads/main by this push:
     new 1026262  chore: Bump Rust edition to 2024 (#218)
1026262 is described below

commit 1026262d8fd163594f757061d43f7c7c2f672a0b
Author: Martin Grigorov <[email protected]>
AuthorDate: Tue Jul 1 11:18:02 2025 +0300

    chore: Bump Rust edition to 2024 (#218)
---
 Cargo.toml                                |   2 +-
 avro/benches/serde.rs                     |   4 +-
 avro/benches/serde_json.rs                |   2 +-
 avro/benches/single.rs                    |   2 +-
 avro/examples/benchmark.rs                |   2 +-
 avro/examples/generate_interop_data.rs    |   2 +-
 avro/examples/specific_single_object.rs   |   4 +-
 avro/src/bigdecimal.rs                    |   6 +-
 avro/src/bytes.rs                         |   2 +-
 avro/src/codec.rs                         |   2 +-
 avro/src/de.rs                            |  19 +-
 avro/src/decimal.rs                       |   2 +-
 avro/src/decode.rs                        |   4 +-
 avro/src/encode.rs                        |   4 +-
 avro/src/error.rs                         |  24 +-
 avro/src/headers.rs                       |   2 +-
 avro/src/lib.rs                           |  11 +-
 avro/src/rabin.rs                         |   4 +-
 avro/src/reader.rs                        |  42 ++--
 avro/src/schema.rs                        |  74 +++---
 avro/src/schema_compatibility.rs          |  46 ++--
 avro/src/schema_equality.rs               |   2 +-
 avro/src/ser.rs                           |   4 +-
 avro/src/ser_schema.rs                    |  37 ++-
 avro/src/types.rs                         | 390 ++++++++++++++++++++----------
 avro/src/util.rs                          |   4 +-
 avro/src/validator.rs                     |   2 +-
 avro/src/writer.rs                        |  15 +-
 avro/tests/append_to_existing.rs          |   3 +-
 avro/tests/avro-3786.rs                   |   6 +-
 avro/tests/avro-3787.rs                   |   2 +-
 avro/tests/codecs.rs                      |   2 +-
 avro/tests/io.rs                          |   2 +-
 avro/tests/schema.rs                      |  14 +-
 avro/tests/shared.rs                      |   2 +-
 avro/tests/to_from_avro_datum_schemata.rs |   6 +-
 avro/tests/union_schema.rs                |   4 +-
 avro/tests/validators.rs                  |   8 +-
 avro_derive/src/lib.rs                    |  34 ++-
 avro_derive/tests/derive.rs               |   7 +-
 wasm-demo/tests/demos.rs                  |   2 +-
 41 files changed, 495 insertions(+), 311 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index cc1eaf6..e2ac210 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -32,7 +32,7 @@ resolver = "2"
 version = "0.19.0"
 license = "Apache-2.0"
 repository = "https://github.com/apache/avro-rs";
-edition = "2021"
+edition = "2024"
 rust-version = "1.85.0"
 keywords = ["avro", "data", "serialization"]
 categories = ["encoding"]
diff --git a/avro/benches/serde.rs b/avro/benches/serde.rs
index 0255bd3..36484c3 100644
--- a/avro/benches/serde.rs
+++ b/avro/benches/serde.rs
@@ -16,11 +16,11 @@
 // under the License.
 
 use apache_avro::{
+    AvroResult, Reader, Writer,
     schema::Schema,
     types::{Record, Value},
-    AvroResult, Reader, Writer,
 };
-use criterion::{criterion_group, criterion_main, Criterion};
+use criterion::{Criterion, criterion_group, criterion_main};
 use serde::Serialize;
 use std::time::Duration;
 
diff --git a/avro/benches/serde_json.rs b/avro/benches/serde_json.rs
index 97bd430..e6f96e6 100644
--- a/avro/benches/serde_json.rs
+++ b/avro/benches/serde_json.rs
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use criterion::{criterion_group, criterion_main, Criterion};
+use criterion::{Criterion, criterion_group, criterion_main};
 use serde_json::Value;
 use std::collections::HashMap;
 
diff --git a/avro/benches/single.rs b/avro/benches/single.rs
index 39d6c9c..48a06ca 100644
--- a/avro/benches/single.rs
+++ b/avro/benches/single.rs
@@ -20,7 +20,7 @@ use apache_avro::{
     to_avro_datum,
     types::{Record, Value},
 };
-use criterion::{criterion_group, criterion_main, Criterion};
+use criterion::{Criterion, criterion_group, criterion_main};
 
 const RAW_SMALL_SCHEMA: &str = r#"
 {
diff --git a/avro/examples/benchmark.rs b/avro/examples/benchmark.rs
index 53dfb1d..b604ab4 100644
--- a/avro/examples/benchmark.rs
+++ b/avro/examples/benchmark.rs
@@ -16,9 +16,9 @@
 // under the License.
 
 use apache_avro::{
+    Reader, Writer,
     schema::Schema,
     types::{Record, Value},
-    Reader, Writer,
 };
 use apache_avro_test_helper::TestResult;
 use std::{
diff --git a/avro/examples/generate_interop_data.rs 
b/avro/examples/generate_interop_data.rs
index e3be06c..7b3c369 100644
--- a/avro/examples/generate_interop_data.rs
+++ b/avro/examples/generate_interop_data.rs
@@ -16,9 +16,9 @@
 // under the License.
 
 use apache_avro::{
+    Codec, Writer,
     schema::Schema,
     types::{Record, Value},
-    Codec, Writer,
 };
 use std::{
     collections::HashMap,
diff --git a/avro/examples/specific_single_object.rs 
b/avro/examples/specific_single_object.rs
index 461e9db..15ab480 100644
--- a/avro/examples/specific_single_object.rs
+++ b/avro/examples/specific_single_object.rs
@@ -37,7 +37,9 @@ fn main() -> anyhow::Result<()> {
             assert_eq!(bytes_written, 15);
             assert_eq!(
                 buffer,
-                vec![195, 1, 166, 59, 243, 49, 82, 230, 8, 161, 54, 6, 102, 
111, 111]
+                vec![
+                    195, 1, 166, 59, 243, 49, 82, 230, 8, 161, 54, 6, 102, 
111, 111
+                ]
             );
         }
         Err(err) => {
diff --git a/avro/src/bigdecimal.rs b/avro/src/bigdecimal.rs
index 723e709..ca9bed9 100644
--- a/avro/src/bigdecimal.rs
+++ b/avro/src/bigdecimal.rs
@@ -16,10 +16,10 @@
 // under the License.
 
 use crate::{
+    AvroResult, Error,
     decode::{decode_len, decode_long},
     encode::{encode_bytes, encode_long},
     types::Value,
-    AvroResult, Error,
 };
 pub use bigdecimal::BigDecimal;
 use num_bigint::BigInt;
@@ -70,7 +70,7 @@ pub(crate) fn deserialize_big_decimal(bytes: &Vec<u8>) -> 
AvroResult<BigDecimal>
 #[cfg(test)]
 mod tests {
     use super::*;
-    use crate::{types::Record, Codec, Reader, Schema, Writer};
+    use crate::{Codec, Reader, Schema, Writer, types::Record};
     use apache_avro_test_helper::TestResult;
     use bigdecimal::{One, Zero};
     use pretty_assertions::assert_eq;
@@ -173,7 +173,7 @@ mod tests {
         }?;
 
         let x1res: &BigDecimal = match big_decimal_value {
-            Value::BigDecimal(ref s) => Ok(s),
+            Value::BigDecimal(s) => Ok(s),
             other => Err(format!("Expected Value::BigDecimal, got: 
{other:?}")),
         }?;
         assert_eq!(&val, x1res);
diff --git a/avro/src/bytes.rs b/avro/src/bytes.rs
index 5c10df2..8ac98b5 100644
--- a/avro/src/bytes.rs
+++ b/avro/src/bytes.rs
@@ -288,7 +288,7 @@ pub mod serde_avro_slice_opt {
 #[cfg(test)]
 mod tests {
     use super::*;
-    use crate::{from_value, to_value, types::Value, Schema};
+    use crate::{Schema, from_value, to_value, types::Value};
     use serde::{Deserialize, Serialize};
 
     #[test]
diff --git a/avro/src/codec.rs b/avro/src/codec.rs
index d616efa..4062654 100644
--- a/avro/src/codec.rs
+++ b/avro/src/codec.rs
@@ -16,7 +16,7 @@
 // under the License.
 
 //! Logic for all supported compression codecs in Avro.
-use crate::{types::Value, AvroResult, Error};
+use crate::{AvroResult, Error, types::Value};
 use strum_macros::{EnumIter, EnumString, IntoStaticStr};
 
 /// Settings for the `Deflate` codec.
diff --git a/avro/src/de.rs b/avro/src/de.rs
index b43f634..8d0c640 100644
--- a/avro/src/de.rs
+++ b/avro/src/de.rs
@@ -16,15 +16,16 @@
 // under the License.
 
 //! Logic for serde-compatible deserialization.
-use crate::{bytes::DE_BYTES_BORROWED, types::Value, Error};
+use crate::{Error, bytes::DE_BYTES_BORROWED, types::Value};
 use serde::{
+    Deserialize,
     de::{self, DeserializeSeed, Deserializer as _, Visitor},
-    forward_to_deserialize_any, Deserialize,
+    forward_to_deserialize_any,
 };
 use std::{
     collections::{
-        hash_map::{Keys, Values},
         HashMap,
+        hash_map::{Keys, Values},
     },
     slice::Iter,
 };
@@ -355,13 +356,13 @@ impl<'de> de::Deserializer<'de> for &Deserializer<'de> {
                     self.input
                 ))),
             },
-            Value::Record(ref fields) => 
visitor.visit_map(RecordDeserializer::new(fields)),
-            Value::Array(ref fields) => 
visitor.visit_seq(SeqDeserializer::new(fields)),
-            Value::String(ref s) => visitor.visit_borrowed_str(s),
+            Value::Record(fields) => 
visitor.visit_map(RecordDeserializer::new(fields)),
+            Value::Array(fields) => 
visitor.visit_seq(SeqDeserializer::new(fields)),
+            Value::String(s) => visitor.visit_borrowed_str(s),
             Value::Uuid(uuid) => visitor.visit_str(&uuid.to_string()),
-            Value::Map(ref items) => 
visitor.visit_map(MapDeserializer::new(items)),
-            Value::Bytes(ref bytes) | Value::Fixed(_, ref bytes) => 
visitor.visit_bytes(bytes),
-            Value::Decimal(ref d) => visitor.visit_bytes(&d.to_vec()?),
+            Value::Map(items) => 
visitor.visit_map(MapDeserializer::new(items)),
+            Value::Bytes(bytes) | Value::Fixed(_, bytes) => 
visitor.visit_bytes(bytes),
+            Value::Decimal(d) => visitor.visit_bytes(&d.to_vec()?),
             Value::Enum(_, s) => visitor.visit_borrowed_str(s),
             value => Err(de::Error::custom(format!(
                 "incorrect value of type: {:?}",
diff --git a/avro/src/decimal.rs b/avro/src/decimal.rs
index e871e58..24b8d43 100644
--- a/avro/src/decimal.rs
+++ b/avro/src/decimal.rs
@@ -17,7 +17,7 @@
 
 use crate::{AvroResult, Error};
 use num_bigint::{BigInt, Sign};
-use serde::{de::SeqAccess, Deserialize, Serialize, Serializer};
+use serde::{Deserialize, Serialize, Serializer, de::SeqAccess};
 
 #[derive(Debug, Clone, Eq)]
 pub struct Decimal {
diff --git a/avro/src/decode.rs b/avro/src/decode.rs
index fa7b241..3f31d6a 100644
--- a/avro/src/decode.rs
+++ b/avro/src/decode.rs
@@ -16,6 +16,7 @@
 // under the License.
 
 use crate::{
+    AvroResult, Error,
     bigdecimal::deserialize_big_decimal,
     decimal::Decimal,
     duration::Duration,
@@ -26,7 +27,6 @@ use crate::{
     },
     types::Value,
     util::{safe_len, zag_i32, zag_i64},
-    AvroResult, Error,
 };
 use std::{
     borrow::Borrow,
@@ -357,6 +357,7 @@ pub(crate) fn decode_internal<R: Read, S: Borrow<Schema>>(
 #[allow(clippy::expect_fun_call)]
 mod tests {
     use crate::{
+        Decimal,
         decode::decode,
         encode::{encode, tests::success},
         schema::{DecimalSchema, FixedSchema, Schema},
@@ -364,7 +365,6 @@ mod tests {
             Value,
             Value::{Array, Int, Map},
         },
-        Decimal,
     };
     use apache_avro_test_helper::TestResult;
     use pretty_assertions::assert_eq;
diff --git a/avro/src/encode.rs b/avro/src/encode.rs
index 73fa978..8f28d10 100644
--- a/avro/src/encode.rs
+++ b/avro/src/encode.rs
@@ -16,6 +16,7 @@
 // under the License.
 
 use crate::{
+    AvroResult,
     bigdecimal::serialize_big_decimal,
     error::Error,
     schema::{
@@ -24,7 +25,6 @@ use crate::{
     },
     types::{Value, ValueKind},
     util::{zig_i32, zig_i64},
-    AvroResult,
 };
 use log::error;
 use std::{borrow::Borrow, collections::HashMap, io::Write};
@@ -63,7 +63,7 @@ pub(crate) fn encode_internal<W: Write, S: Borrow<Schema>>(
     enclosing_namespace: &Namespace,
     writer: &mut W,
 ) -> AvroResult<usize> {
-    if let Schema::Ref { ref name } = schema {
+    if let Schema::Ref { name } = schema {
         let fully_qualified_name = 
name.fully_qualified_name(enclosing_namespace);
         let resolved = names
             .get(&fully_qualified_name)
diff --git a/avro/src/error.rs b/avro/src/error.rs
index b169b30..e68495c 100644
--- a/avro/src/error.rs
+++ b/avro/src/error.rs
@@ -66,7 +66,9 @@ pub enum Error {
     MemoryAllocation { desired: usize, maximum: usize },
 
     /// Describe a specific error happening with decimal representation
-    #[error("Number of bytes requested for decimal sign extension {requested} 
is less than the number of bytes needed to decode {needed}")]
+    #[error(
+        "Number of bytes requested for decimal sign extension {requested} is 
less than the number of bytes needed to decode {needed}"
+    )]
     SignExtend { requested: usize, needed: usize },
 
     #[error("Failed to read boolean bytes: {0}")]
@@ -350,7 +352,9 @@ pub enum Error {
     #[error("Invalid namespace {0}. It must match the regex '{1}'")]
     InvalidNamespace(String, &'static str),
 
-    #[error("Invalid schema: There is no type called '{0}', if you meant to 
define a non-primitive schema, it should be defined inside `type` attribute. 
Please review the specification")]
+    #[error(
+        "Invalid schema: There is no type called '{0}', if you meant to define 
a non-primitive schema, it should be defined inside `type` attribute. Please 
review the specification"
+    )]
     InvalidSchemaRecord(String),
 
     #[error("Duplicate enum symbol {0}")]
@@ -503,9 +507,7 @@ pub enum Error {
         value_kind: ValueKind,
         supported_schema: Vec<SchemaKind>,
     },
-    #[error(
-        "Internal buffer not drained properly. Re-initialize the single object 
writer struct!"
-    )]
+    #[error("Internal buffer not drained properly. Re-initialize the single 
object writer struct!")]
     IllegalSingleObjectWriterState,
 
     #[error("Codec '{0}' is not supported/enabled")]
@@ -520,7 +522,9 @@ pub enum Error {
 
 #[derive(thiserror::Error, PartialEq)]
 pub enum CompatibilityError {
-    #[error("Incompatible schema types! Writer schema is 
'{writer_schema_type}', but reader schema is '{reader_schema_type}'")]
+    #[error(
+        "Incompatible schema types! Writer schema is '{writer_schema_type}', 
but reader schema is '{reader_schema_type}'"
+    )]
     WrongType {
         writer_schema_type: String,
         reader_schema_type: String,
@@ -532,7 +536,9 @@ pub enum CompatibilityError {
         expected_type: Vec<SchemaKind>,
     },
 
-    #[error("Incompatible schemata! Field '{0}' in reader schema does not 
match the type in the writer schema")]
+    #[error(
+        "Incompatible schemata! Field '{0}' in reader schema does not match 
the type in the writer schema"
+    )]
     FieldTypeMismatch(String, #[source] Box<CompatibilityError>),
 
     #[error("Incompatible schemata! Field '{0}' in reader schema must have a 
default value")]
@@ -547,7 +553,9 @@ pub enum CompatibilityError {
     #[error("Incompatible schemata! Name and size don't match for fixed")]
     FixedMismatch,
 
-    #[error("Incompatible schemata! The name must be the same for both 
schemas. Writer's name {writer_name} and reader's name {reader_name}")]
+    #[error(
+        "Incompatible schemata! The name must be the same for both schemas. 
Writer's name {writer_name} and reader's name {reader_name}"
+    )]
     NameMismatch {
         writer_name: String,
         reader_name: String,
diff --git a/avro/src/headers.rs b/avro/src/headers.rs
index 971b182..dae44f1 100644
--- a/avro/src/headers.rs
+++ b/avro/src/headers.rs
@@ -18,7 +18,7 @@
 //! Handling of Avro magic headers
 use uuid::Uuid;
 
-use crate::{rabin::Rabin, schema::SchemaFingerprint, AvroResult, Schema};
+use crate::{AvroResult, Schema, rabin::Rabin, schema::SchemaFingerprint};
 
 /// This trait represents that an object is able to construct an Avro message 
header. It is
 /// implemented for some known header types already. If you need a header type 
that is not already
diff --git a/avro/src/lib.rs b/avro/src/lib.rs
index 993ae78..0f26246 100644
--- a/avro/src/lib.rs
+++ b/avro/src/lib.rs
@@ -898,16 +898,16 @@ pub use decimal::Decimal;
 pub use duration::{Days, Duration, Millis, Months};
 pub use error::Error;
 pub use reader::{
-    from_avro_datum, from_avro_datum_reader_schemata, 
from_avro_datum_schemata, read_marker,
-    GenericSingleObjectReader, Reader, SpecificSingleObjectReader,
+    GenericSingleObjectReader, Reader, SpecificSingleObjectReader, 
from_avro_datum,
+    from_avro_datum_reader_schemata, from_avro_datum_schemata, read_marker,
 };
 pub use schema::{AvroSchema, Schema};
 pub use ser::to_value;
 pub use util::{max_allocation_bytes, set_serde_human_readable};
 pub use uuid::Uuid;
 pub use writer::{
-    to_avro_datum, to_avro_datum_schemata, write_avro_datum_ref, 
GenericSingleObjectWriter,
-    SpecificSingleObjectWriter, Writer, WriterBuilder,
+    GenericSingleObjectWriter, SpecificSingleObjectWriter, Writer, 
WriterBuilder, to_avro_datum,
+    to_avro_datum_schemata, write_avro_datum_ref,
 };
 
 #[cfg(feature = "derive")]
@@ -919,9 +919,8 @@ pub type AvroResult<T> = Result<T, Error>;
 #[cfg(test)]
 mod tests {
     use crate::{
-        from_avro_datum,
+        Codec, Reader, Schema, Writer, from_avro_datum,
         types::{Record, Value},
-        Codec, Reader, Schema, Writer,
     };
     use pretty_assertions::assert_eq;
 
diff --git a/avro/src/rabin.rs b/avro/src/rabin.rs
index eb34477..3d90333 100644
--- a/avro/src/rabin.rs
+++ b/avro/src/rabin.rs
@@ -17,8 +17,8 @@
 
 //! Implementation of the Rabin fingerprint algorithm
 use digest::{
-    consts::U8, core_api::OutputSizeUser, generic_array::GenericArray, 
FixedOutput,
-    FixedOutputReset, HashMarker, Output, Reset, Update,
+    FixedOutput, FixedOutputReset, HashMarker, Output, Reset, Update, 
consts::U8,
+    core_api::OutputSizeUser, generic_array::GenericArray,
 };
 use std::sync::OnceLock;
 
diff --git a/avro/src/reader.rs b/avro/src/reader.rs
index 78e0298..fb93c70 100644
--- a/avro/src/reader.rs
+++ b/avro/src/reader.rs
@@ -17,15 +17,16 @@
 
 //! Logic handling reading from Avro format at user level.
 use crate::{
+    AvroResult, Codec, Error,
     decode::{decode, decode_internal},
     from_value,
     headers::{HeaderBuilder, RabinFingerprintHeader},
     schema::{
-        resolve_names, resolve_names_with_schemata, AvroSchema, Names, 
ResolvedOwnedSchema,
-        ResolvedSchema, Schema,
+        AvroSchema, Names, ResolvedOwnedSchema, ResolvedSchema, Schema, 
resolve_names,
+        resolve_names_with_schemata,
     },
     types::Value,
-    util, AvroResult, Codec, Error,
+    util,
 };
 use log::warn;
 use serde::de::DeserializeOwned;
@@ -86,24 +87,27 @@ impl<'r, R: Read> Block<'r, R> {
         }
 
         let meta_schema = Schema::map(Schema::Bytes);
-        if let Value::Map(metadata) = decode(&meta_schema, &mut self.reader)? {
-            self.read_writer_schema(&metadata)?;
-            self.codec = read_codec(&metadata)?;
-
-            for (key, value) in metadata {
-                if key == "avro.schema"
-                    || key == "avro.codec"
-                    || key == "avro.codec.compression_level"
-                {
-                    // already processed
-                } else if key.starts_with("avro.") {
-                    warn!("Ignoring unknown metadata key: {key}");
-                } else {
-                    self.read_user_metadata(key, value);
+        match decode(&meta_schema, &mut self.reader)? {
+            Value::Map(metadata) => {
+                self.read_writer_schema(&metadata)?;
+                self.codec = read_codec(&metadata)?;
+
+                for (key, value) in metadata {
+                    if key == "avro.schema"
+                        || key == "avro.codec"
+                        || key == "avro.codec.compression_level"
+                    {
+                        // already processed
+                    } else if key.starts_with("avro.") {
+                        warn!("Ignoring unknown metadata key: {key}");
+                    } else {
+                        self.read_user_metadata(key, value);
+                    }
                 }
             }
-        } else {
-            return Err(Error::GetHeaderMetadata);
+            _ => {
+                return Err(Error::GetHeaderMetadata);
+            }
         }
 
         self.reader
diff --git a/avro/src/schema.rs b/avro/src/schema.rs
index edb3345..342b605 100644
--- a/avro/src/schema.rs
+++ b/avro/src/schema.rs
@@ -17,6 +17,7 @@
 
 //! Logic for parsing and interacting with schemas in Avro format.
 use crate::{
+    AvroResult,
     error::Error,
     schema_equality, types,
     util::MapHelper,
@@ -24,13 +25,12 @@ use crate::{
         validate_enum_symbol_name, validate_namespace, 
validate_record_field_name,
         validate_schema_name,
     },
-    AvroResult,
 };
 use digest::Digest;
 use log::{debug, error, warn};
 use serde::{
-    ser::{SerializeMap, SerializeSeq},
     Deserialize, Serialize, Serializer,
+    ser::{SerializeMap, SerializeSeq},
 };
 use serde_json::{Map, Value};
 use std::{
@@ -1406,10 +1406,12 @@ impl Parser {
         enclosing_namespace: &Namespace,
     ) -> AvroResult<Schema> {
         fn get_schema_ref(parsed: &Schema) -> Schema {
-            match &parsed {
-                Schema::Record(RecordSchema { ref name, .. })
-                | Schema::Enum(EnumSchema { ref name, .. })
-                | Schema::Fixed(FixedSchema { ref name, .. }) => Schema::Ref { 
name: name.clone() },
+            match parsed {
+                &Schema::Record(RecordSchema { ref name, .. })
+                | &Schema::Enum(EnumSchema { ref name, .. })
+                | &Schema::Fixed(FixedSchema { ref name, .. }) => {
+                    Schema::Ref { name: name.clone() }
+                }
                 _ => parsed.clone(),
             }
         }
@@ -1577,7 +1579,9 @@ impl Parser {
                             Schema::String => Ok(Schema::Uuid),
                             Schema::Fixed(FixedSchema { size: 16, .. }) => 
Ok(Schema::Uuid),
                             Schema::Fixed(FixedSchema { size, .. }) => {
-                                warn!("Ignoring uuid logical type for a Fixed 
schema because its size ({size:?}) is not 16! Schema: {schema:?}");
+                                warn!(
+                                    "Ignoring uuid logical type for a Fixed 
schema because its size ({size:?}) is not 16! Schema: {schema:?}"
+                                );
                                 Ok(schema)
                             }
                             _ => {
@@ -1709,7 +1713,7 @@ impl Parser {
 
         let namespace = &name.namespace;
 
-        if let Some(ref aliases) = aliases {
+        if let Some(aliases) = aliases {
             aliases.iter().for_each(|alias| {
                 let alias_fullname = alias.fully_qualified_name(namespace);
                 self.resolving_schemas
@@ -1732,7 +1736,7 @@ impl Parser {
 
         let namespace = &fully_qualified_name.namespace;
 
-        if let Some(ref aliases) = aliases {
+        if let Some(aliases) = aliases {
             aliases.iter().for_each(|alias| {
                 let alias_fullname = alias.fully_qualified_name(namespace);
                 self.resolving_schemas.remove(&alias_fullname);
@@ -1748,7 +1752,7 @@ impl Parser {
         enclosing_namespace: &Namespace,
     ) -> Option<&Schema> {
         match complex.get("type") {
-            Some(Value::String(ref typ)) => {
+            Some(Value::String(typ)) => {
                 let name = Name::new(typ.as_str())
                     .unwrap()
                     .fully_qualified_name(enclosing_namespace);
@@ -1997,7 +2001,7 @@ impl Parser {
         }
 
         let doc = complex.get("doc").and_then(|v| match &v {
-            Value::String(ref docstr) => Some(docstr.clone()),
+            &Value::String(docstr) => Some(docstr.clone()),
             _ => None,
         });
 
@@ -2009,7 +2013,7 @@ impl Parser {
         }?;
 
         let default = complex.get("default").and_then(|v| match &v {
-            Value::String(ref default) => Some(default.clone()),
+            &Value::String(default) => Some(default.clone()),
             _ => None,
         });
 
@@ -2050,7 +2054,7 @@ fn fix_aliases_namespace(aliases: Option<Vec<String>>, 
namespace: &Namespace) ->
             .map(|alias| {
                 if alias.find('.').is_none() {
                     match namespace {
-                        Some(ref ns) => format!("{ns}.{alias}"),
+                        Some(ns) => format!("{ns}.{alias}"),
                         None => alias.clone(),
                     }
                 } else {
@@ -2127,10 +2131,10 @@ impl Serialize for Schema {
                     map.serialize_entry("namespace", n)?;
                 }
                 map.serialize_entry("name", &name.name)?;
-                if let Some(ref docstr) = doc {
+                if let Some(docstr) = doc {
                     map.serialize_entry("doc", docstr)?;
                 }
-                if let Some(ref aliases) = aliases {
+                if let Some(aliases) = aliases {
                     map.serialize_entry("aliases", aliases)?;
                 }
                 map.serialize_entry("fields", fields)?;
@@ -2154,7 +2158,7 @@ impl Serialize for Schema {
                 map.serialize_entry("name", &name.name)?;
                 map.serialize_entry("symbols", symbols)?;
 
-                if let Some(ref aliases) = aliases {
+                if let Some(aliases) = aliases {
                     map.serialize_entry("aliases", aliases)?;
                 }
                 for attr in attributes {
@@ -2507,7 +2511,7 @@ pub mod derive {
     /// ```
     pub trait AvroSchemaComponent {
         fn get_schema_in_ctxt(named_schemas: &mut Names, enclosing_namespace: 
&Namespace)
-            -> Schema;
+        -> Schema;
     }
 
     impl<T> AvroSchema for T
@@ -2639,10 +2643,10 @@ pub mod derive {
 #[cfg(test)]
 mod tests {
     use super::*;
-    use crate::{rabin::Rabin, SpecificSingleObjectWriter};
+    use crate::{SpecificSingleObjectWriter, rabin::Rabin};
     use apache_avro_test_helper::{
-        logger::{assert_logged, assert_not_logged},
         TestResult,
+        logger::{assert_logged, assert_not_logged},
     };
     use serde_json::json;
     use serial_test::serial;
@@ -2792,17 +2796,19 @@ mod tests {
         let schema_c_expected = Schema::Record(
             RecordSchema::builder()
                 .name(Name::new("C")?)
-                .fields(vec![RecordField::builder()
-                    .name("field_one".to_string())
-                    .schema(Schema::Union(UnionSchema::new(vec![
-                        Schema::Ref {
-                            name: Name::new("A")?,
-                        },
-                        Schema::Ref {
-                            name: Name::new("B")?,
-                        },
-                    ])?))
-                    .build()])
+                .fields(vec![
+                    RecordField::builder()
+                        .name("field_one".to_string())
+                        .schema(Schema::Union(UnionSchema::new(vec![
+                            Schema::Ref {
+                                name: Name::new("A")?,
+                            },
+                            Schema::Ref {
+                                name: Name::new("B")?,
+                            },
+                        ])?))
+                        .build(),
+                ])
                 .lookup(BTreeMap::from_iter(vec![("field_one".to_string(), 
0)]))
                 .build(),
         );
@@ -6852,7 +6858,9 @@ mod tests {
                 let scale = attrs
                     .get("scale")
                     .expect("The 'scale' attribute is missing");
-                assert_logged(&format!("Ignoring invalid decimal logical type: 
The decimal precision ({precision}) must be bigger or equal to the scale 
({scale})"));
+                assert_logged(&format!(
+                    "Ignoring invalid decimal logical type: The decimal 
precision ({precision}) must be bigger or equal to the scale ({scale})"
+                ));
             }
             _ => unreachable!("Expected Schema::Fixed, got {:?}", schema),
         }
@@ -6868,7 +6876,9 @@ mod tests {
         )?;
         match schema {
             Schema::Decimal(_) => {
-                assert_not_logged("Ignoring invalid decimal logical type: The 
decimal precision (2) must be bigger or equal to the scale (3)");
+                assert_not_logged(
+                    "Ignoring invalid decimal logical type: The decimal 
precision (2) must be bigger or equal to the scale (3)",
+                );
             }
             _ => unreachable!("Expected Schema::Decimal, got {:?}", schema),
         }
diff --git a/avro/src/schema_compatibility.rs b/avro/src/schema_compatibility.rs
index fa6dc05..3fec12a 100644
--- a/avro/src/schema_compatibility.rs
+++ b/avro/src/schema_compatibility.rs
@@ -21,7 +21,7 @@ use crate::{
     schema::{EnumSchema, FixedSchema, RecordSchema, Schema, SchemaKind},
 };
 use std::{
-    collections::{hash_map::DefaultHasher, HashSet},
+    collections::{HashSet, hash_map::DefaultHasher},
     hash::Hasher,
     ptr,
 };
@@ -460,7 +460,7 @@ impl SchemaCompatibility {
                 _ => {
                     return Err(CompatibilityError::Inconclusive(String::from(
                         "readers_schema",
-                    )))
+                    )));
                 }
             };
         }
@@ -524,8 +524,8 @@ impl SchemaCompatibility {
 mod tests {
     use super::*;
     use crate::{
-        types::{Record, Value},
         Codec, Reader, Writer,
+        types::{Record, Value},
     };
     use apache_avro_test_helper::TestResult;
     use rstest::*;
@@ -735,9 +735,11 @@ mod tests {
             (nested_record(), nested_optional_record()),
         ];
 
-        assert!(incompatible_schemas
-            .iter()
-            .any(|(reader, writer)| SchemaCompatibility::can_read(writer, 
reader).is_err()));
+        assert!(
+            incompatible_schemas
+                .iter()
+                .any(|(reader, writer)| SchemaCompatibility::can_read(writer, 
reader).is_err())
+        );
     }
 
     #[rstest]
@@ -1068,9 +1070,11 @@ mod tests {
             (nested_optional_record(), nested_record()),
         ];
 
-        assert!(compatible_schemas
-            .iter()
-            .all(|(reader, writer)| SchemaCompatibility::can_read(writer, 
reader).is_ok()));
+        assert!(
+            compatible_schemas
+                .iter()
+                .all(|(reader, writer)| SchemaCompatibility::can_read(writer, 
reader).is_ok())
+        );
     }
 
     fn writer_schema() -> Schema {
@@ -1684,24 +1688,26 @@ mod tests {
         let schemas = [
             (
                 Schema::parse_str(
-                r#"{
+                    r#"{
                     "type": "record",
                     "name": "StatisticsMap",
                     "fields": [
                         {"name": "average", "type": "int", "default": 0},
                         {"name": "success", "type": {"type": "map", "values": 
"int"}}
                     ]
-                }"#)?,
+                }"#,
+                )?,
                 Schema::parse_str(
-                        r#"{
+                    r#"{
                     "type": "record",
                     "name": "StatisticsMap",
                     "fields": [
                         {"name": "average", "type": "int", "default": 0},
                         {"name": "success", "type": ["null", {"type": "map", 
"values": "int"}], "default": null}
                     ]
-                }"#)?,
-                "Incompatible schemata! Field 'success' in reader schema does 
not match the type in the writer schema"
+                }"#,
+                )?,
+                "Incompatible schemata! Field 'success' in reader schema does 
not match the type in the writer schema",
             ),
             (
                 Schema::parse_str(
@@ -1711,17 +1717,19 @@ mod tests {
                         "fields": [
                             {"name": "max_values", "type": {"type": "array", 
"items": "int"}}
                         ]
-                    }"#)?,
-                    Schema::parse_str(
+                    }"#,
+                )?,
+                Schema::parse_str(
                     r#"{
                         "type": "record",
                         "name": "StatisticsArray",
                         "fields": [
                             {"name": "max_values", "type": ["null", {"type": 
"array", "items": "int"}], "default": null}
                         ]
-                    }"#)?,
-                    "Incompatible schemata! Field 'max_values' in reader 
schema does not match the type in the writer schema"
-            )
+                    }"#,
+                )?,
+                "Incompatible schemata! Field 'max_values' in reader schema 
does not match the type in the writer schema",
+            ),
         ];
 
         for (schema_1, schema_2, error) in schemas {
diff --git a/avro/src/schema_equality.rs b/avro/src/schema_equality.rs
index feb4049..b884a0f 100644
--- a/avro/src/schema_equality.rs
+++ b/avro/src/schema_equality.rs
@@ -16,11 +16,11 @@
 // under the License.
 
 use crate::{
+    Schema,
     schema::{
         ArraySchema, DecimalSchema, EnumSchema, FixedSchema, MapSchema, 
RecordField, RecordSchema,
         UnionSchema,
     },
-    Schema,
 };
 use log::{debug, error};
 use std::{fmt::Debug, sync::OnceLock};
diff --git a/avro/src/ser.rs b/avro/src/ser.rs
index 2d636fe..8e6e595 100644
--- a/avro/src/ser.rs
+++ b/avro/src/ser.rs
@@ -17,11 +17,11 @@
 
 //! Logic for serde-compatible serialization.
 use crate::{
+    Error,
     bytes::{BytesType, SER_BYTES_TYPE},
     types::Value,
-    Error,
 };
-use serde::{ser, Serialize};
+use serde::{Serialize, ser};
 use std::{collections::HashMap, iter::once};
 
 #[derive(Clone, Default)]
diff --git a/avro/src/ser_schema.rs b/avro/src/ser_schema.rs
index fd273a9..7be43fa 100644
--- a/avro/src/ser_schema.rs
+++ b/avro/src/ser_schema.rs
@@ -692,7 +692,9 @@ impl<'s, W: Write> SchemaAwareWriteSerializer<'s, W> {
                         _ => { /* skip */ }
                     }
                 }
-                Err(create_error(format!("Cannot find a matching Int-like, 
Long-like or Bytes schema in {union_schema:?}")))
+                Err(create_error(format!(
+                    "Cannot find a matching Int-like, Long-like or Bytes 
schema in {union_schema:?}"
+                )))
             }
             expected => Err(create_error(format!("Expected: {expected}. Got: 
Int"))),
         }
@@ -982,14 +984,21 @@ impl<'s, W: Write> SchemaAwareWriteSerializer<'s, W> {
                 if value.len() == fixed_schema.size {
                     self.writer.write(value).map_err(Error::WriteBytes)
                 } else {
-                    Err(create_error(format!("Fixed schema size ({}) does not 
match the value length ({})", fixed_schema.size, value.len())))
+                    Err(create_error(format!(
+                        "Fixed schema size ({}) does not match the value 
length ({})",
+                        fixed_schema.size,
+                        value.len()
+                    )))
                 }
             }
             Schema::Duration => {
                 if value.len() == 12 {
                     self.writer.write(value).map_err(Error::WriteBytes)
                 } else {
-                    Err(create_error(format!("Duration length must be 12! Got 
({})", value.len())))
+                    Err(create_error(format!(
+                        "Duration length must be 12! Got ({})",
+                        value.len()
+                    )))
                 }
             }
             Schema::Decimal(decimal_schema) => match 
decimal_schema.inner.as_ref() {
@@ -1011,7 +1020,9 @@ impl<'s, W: Write> SchemaAwareWriteSerializer<'s, W> {
                         n: value.len(),
                     }),
                 },
-                unsupported => Err(create_error(format!("Decimal schema's 
inner should be Bytes or Fixed schema. Got: {unsupported}"))),
+                unsupported => Err(create_error(format!(
+                    "Decimal schema's inner should be Bytes or Fixed schema. 
Got: {unsupported}"
+                ))),
             },
             Schema::Ref { name } => {
                 let ref_schema = self.get_ref_schema(name)?;
@@ -1034,9 +1045,13 @@ impl<'s, W: Write> SchemaAwareWriteSerializer<'s, W> {
                         _ => { /* skip */ }
                     }
                 }
-                Err(create_error(format!("Cannot find a matching String, 
Bytes, Uuid, BigDecimal, Fixed, Duration, Decimal or Ref schema in 
{union_schema:?}")))
+                Err(create_error(format!(
+                    "Cannot find a matching String, Bytes, Uuid, BigDecimal, 
Fixed, Duration, Decimal or Ref schema in {union_schema:?}"
+                )))
             }
-            unsupported => Err(create_error(format!("Expected String, Bytes, 
Uuid, BigDecimal, Fixed, Duration, Decimal, Ref or Union schema. Got: 
{unsupported}"))),
+            unsupported => Err(create_error(format!(
+                "Expected String, Bytes, Uuid, BigDecimal, Fixed, Duration, 
Decimal, Ref or Union schema. Got: {unsupported}"
+            ))),
         }
     }
 
@@ -1748,7 +1763,7 @@ impl<'a, 's, W: Write> ser::Serializer for &'a mut 
SchemaAwareWriteSerializer<'s
 #[cfg(test)]
 mod tests {
     use super::*;
-    use crate::{decimal::Decimal, schema::ResolvedSchema, Days, Duration, 
Millis, Months};
+    use crate::{Days, Duration, Millis, Months, decimal::Decimal, 
schema::ResolvedSchema};
     use apache_avro_test_helper::TestResult;
     use bigdecimal::BigDecimal;
     use num_bigint::{BigInt, Sign};
@@ -2556,7 +2571,9 @@ mod tests {
 
         assert_eq!(
             buffer.as_slice(),
-            &[200, 1, 208, 15, 160, 156, 1, 208, 15, 160, 156, 1, 160, 156, 1]
+            &[
+                200, 1, 208, 15, 160, 156, 1, 208, 15, 160, 156, 1, 160, 156, 1
+            ]
         );
 
         Ok(())
@@ -2608,7 +2625,9 @@ mod tests {
 
             assert_eq!(
                 buffer.as_slice(),
-                &[200, 1, 208, 15, 160, 156, 1, 208, 15, 160, 156, 1, 160, 
156, 1]
+                &[
+                    200, 1, 208, 15, 160, 156, 1, 208, 15, 160, 156, 1, 160, 
156, 1
+                ]
             );
         }
 
diff --git a/avro/src/types.rs b/avro/src/types.rs
index fe88bfe..f241661 100644
--- a/avro/src/types.rs
+++ b/avro/src/types.rs
@@ -17,6 +17,7 @@
 
 //! Logic handling the intermediate representation of Avro values.
 use crate::{
+    AvroResult, Error,
     bigdecimal::{deserialize_big_decimal, serialize_big_decimal},
     decimal::Decimal,
     duration::Duration,
@@ -24,7 +25,6 @@ use crate::{
         DecimalSchema, EnumSchema, FixedSchema, Name, Namespace, Precision, 
RecordField,
         RecordSchema, ResolvedSchema, Scale, Schema, SchemaKind, UnionSchema,
     },
-    AvroResult, Error,
 };
 use bigdecimal::BigDecimal;
 use log::{debug, error};
@@ -1184,8 +1184,8 @@ mod tests {
         schema::RecordFieldOrder,
     };
     use apache_avro_test_helper::{
-        logger::{assert_logged, assert_not_logged},
         TestResult,
+        logger::{assert_logged, assert_not_logged},
     };
     use num_bigint::BigInt;
     use pretty_assertions::assert_eq;
@@ -1274,23 +1274,21 @@ mod tests {
             ),
             (
                 Value::Union(3, Box::new(Value::Int(42))),
-                Schema::Union(
-                    UnionSchema::new(vec![
-                        Schema::Null,
-                        Schema::Double,
-                        Schema::String,
-                        Schema::Int,
-                    ])
-                    ?,
-                ),
+                Schema::Union(UnionSchema::new(vec![
+                    Schema::Null,
+                    Schema::Double,
+                    Schema::String,
+                    Schema::Int,
+                ])?),
                 true,
                 "",
             ),
             (
                 Value::Union(1, Box::new(Value::Long(42i64))),
-                Schema::Union(
-                    UnionSchema::new(vec![Schema::Null, 
Schema::TimestampMillis])?,
-                ),
+                Schema::Union(UnionSchema::new(vec![
+                    Schema::Null,
+                    Schema::TimestampMillis,
+                ])?),
                 true,
                 "",
             ),
@@ -1312,7 +1310,12 @@ mod tests {
                 false,
                 "Invalid value: Array([Boolean(true)]) for schema: 
Array(ArraySchema { items: Long, attributes: {} }). Reason: Unsupported 
value-schema combination! Value: Boolean(true), schema: Long",
             ),
-            (Value::Record(vec![]), Schema::Null, false, "Invalid value: 
Record([]) for schema: Null. Reason: Unsupported value-schema combination! 
Value: Record([]), schema: Null"),
+            (
+                Value::Record(vec![]),
+                Schema::Null,
+                false,
+                "Invalid value: Record([]) for schema: Null. Reason: 
Unsupported value-schema combination! Value: Record([]), schema: Null",
+            ),
             (
                 Value::Fixed(12, vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]),
                 Schema::Duration,
@@ -1564,11 +1567,13 @@ mod tests {
             attributes: Default::default(),
         });
 
-        assert!(Value::Record(vec![
-            ("a".to_string(), Value::Long(42i64)),
-            ("b".to_string(), Value::String("foo".to_string())),
-        ])
-        .validate(&schema));
+        assert!(
+            Value::Record(vec![
+                ("a".to_string(), Value::Long(42i64)),
+                ("b".to_string(), Value::String("foo".to_string())),
+            ])
+            .validate(&schema)
+        );
 
         let value = Value::Record(vec![
             ("b".to_string(), Value::String("foo".to_string())),
@@ -1617,22 +1622,26 @@ mod tests {
             r#"Invalid value: Record([("a", Long(42)), ("b", String("foo")), 
("c", Null), ("d", Null)]) for schema: Record(RecordSchema { name: Name { name: 
"some_record", namespace: None }, aliases: None, doc: None, fields: 
[RecordField { name: "a", doc: None, aliases: None, default: None, schema: 
Long, order: Ascending, position: 0, custom_attributes: {} }, RecordField { 
name: "b", doc: None, aliases: None, default: None, schema: String, order: 
Ascending, position: 1, custom_attributes [...]
         );
 
-        assert!(Value::Map(
-            vec![
-                ("a".to_string(), Value::Long(42i64)),
-                ("b".to_string(), Value::String("foo".to_string())),
-            ]
-            .into_iter()
-            .collect()
-        )
-        .validate(&schema));
-
-        assert!(!Value::Map(
-            vec![("d".to_string(), Value::Long(123_i64)),]
+        assert!(
+            Value::Map(
+                vec![
+                    ("a".to_string(), Value::Long(42i64)),
+                    ("b".to_string(), Value::String("foo".to_string())),
+                ]
                 .into_iter()
                 .collect()
-        )
-        .validate(&schema));
+            )
+            .validate(&schema)
+        );
+
+        assert!(
+            !Value::Map(
+                vec![("d".to_string(), Value::Long(123_i64)),]
+                    .into_iter()
+                    .collect()
+            )
+            .validate(&schema)
+        );
         assert_logged(
             r#"Invalid value: Map({"d": Long(123)}) for schema: 
Record(RecordSchema { name: Name { name: "some_record", namespace: None }, 
aliases: None, doc: None, fields: [RecordField { name: "a", doc: None, aliases: 
None, default: None, schema: Long, order: Ascending, position: 0, 
custom_attributes: {} }, RecordField { name: "b", doc: None, aliases: None, 
default: None, schema: String, order: Ascending, position: 1, 
custom_attributes: {} }, RecordField { name: "c", doc: None, aliases: [...]
 Field with name '"b"' is not a member of the map items"#,
@@ -1640,27 +1649,31 @@ Field with name '"b"' is not a member of the map 
items"#,
 
         let union_schema = Schema::Union(UnionSchema::new(vec![Schema::Null, 
schema])?);
 
-        assert!(Value::Union(
-            1,
-            Box::new(Value::Record(vec![
-                ("a".to_string(), Value::Long(42i64)),
-                ("b".to_string(), Value::String("foo".to_string())),
-            ]))
-        )
-        .validate(&union_schema));
-
-        assert!(Value::Union(
-            1,
-            Box::new(Value::Map(
-                vec![
+        assert!(
+            Value::Union(
+                1,
+                Box::new(Value::Record(vec![
                     ("a".to_string(), Value::Long(42i64)),
                     ("b".to_string(), Value::String("foo".to_string())),
-                ]
-                .into_iter()
-                .collect()
-            ))
-        )
-        .validate(&union_schema));
+                ]))
+            )
+            .validate(&union_schema)
+        );
+
+        assert!(
+            Value::Union(
+                1,
+                Box::new(Value::Map(
+                    vec![
+                        ("a".to_string(), Value::Long(42i64)),
+                        ("b".to_string(), Value::String("foo".to_string())),
+                    ]
+                    .into_iter()
+                    .collect()
+                ))
+            )
+            .validate(&union_schema)
+        );
 
         Ok(())
     }
@@ -1720,45 +1733,51 @@ Field with name '"b"' is not a member of the map 
items"#,
     #[test]
     fn resolve_decimal_invalid_scale() {
         let value = Value::Decimal(Decimal::from(vec![1, 2]));
-        assert!(value
-            .resolve(&Schema::Decimal(DecimalSchema {
-                precision: 2,
-                scale: 3,
-                inner: Box::new(Schema::Bytes),
-            }))
-            .is_err());
+        assert!(
+            value
+                .resolve(&Schema::Decimal(DecimalSchema {
+                    precision: 2,
+                    scale: 3,
+                    inner: Box::new(Schema::Bytes),
+                }))
+                .is_err()
+        );
     }
 
     #[test]
     fn resolve_decimal_invalid_precision_for_length() {
         let value = 
Value::Decimal(Decimal::from((1u8..=8u8).rev().collect::<Vec<_>>()));
-        assert!(value
-            .resolve(&Schema::Decimal(DecimalSchema {
-                precision: 1,
-                scale: 0,
-                inner: Box::new(Schema::Bytes),
-            }))
-            .is_ok());
+        assert!(
+            value
+                .resolve(&Schema::Decimal(DecimalSchema {
+                    precision: 1,
+                    scale: 0,
+                    inner: Box::new(Schema::Bytes),
+                }))
+                .is_ok()
+        );
     }
 
     #[test]
     fn resolve_decimal_fixed() {
         let value = Value::Decimal(Decimal::from(vec![1, 2, 3, 4, 5]));
-        assert!(value
-            .clone()
-            .resolve(&Schema::Decimal(DecimalSchema {
-                precision: 10,
-                scale: 1,
-                inner: Box::new(Schema::Fixed(FixedSchema {
-                    name: Name::new("decimal").unwrap(),
-                    aliases: None,
-                    size: 20,
-                    doc: None,
-                    default: None,
-                    attributes: Default::default(),
+        assert!(
+            value
+                .clone()
+                .resolve(&Schema::Decimal(DecimalSchema {
+                    precision: 10,
+                    scale: 1,
+                    inner: Box::new(Schema::Fixed(FixedSchema {
+                        name: Name::new("decimal").unwrap(),
+                        aliases: None,
+                        size: 20,
+                        doc: None,
+                        default: None,
+                        attributes: Default::default(),
+                    }))
                 }))
-            }))
-            .is_ok());
+                .is_ok()
+        );
         assert!(value.resolve(&Schema::String).is_err());
     }
 
@@ -2066,7 +2085,10 @@ Field with name '"b"' is not a member of the map items"#,
         );
         assert_eq!(
             JsonValue::try_from(Value::Duration(
-                [1u8, 2u8, 3u8, 4u8, 5u8, 6u8, 7u8, 8u8, 9u8, 10u8, 11u8, 
12u8].into()
+                [
+                    1u8, 2u8, 3u8, 4u8, 5u8, 6u8, 7u8, 8u8, 9u8, 10u8, 11u8, 
12u8
+                ]
+                .into()
             ))?,
             JsonValue::Array(vec![
                 JsonValue::Number(1.into()),
@@ -3075,28 +3097,32 @@ Field with name '"b"' is not a member of the map 
items"#,
         );
 
         let value = Value::Bytes(vec![97, 99]);
-        assert!(value
-            .resolve(&Schema::Fixed(FixedSchema {
-                name: "test".into(),
-                aliases: None,
-                doc: None,
-                size: 3,
-                default: None,
-                attributes: Default::default()
-            }))
-            .is_err(),);
+        assert!(
+            value
+                .resolve(&Schema::Fixed(FixedSchema {
+                    name: "test".into(),
+                    aliases: None,
+                    doc: None,
+                    size: 3,
+                    default: None,
+                    attributes: Default::default()
+                }))
+                .is_err(),
+        );
 
         let value = Value::Bytes(vec![97, 98, 99, 100]);
-        assert!(value
-            .resolve(&Schema::Fixed(FixedSchema {
-                name: "test".into(),
-                aliases: None,
-                doc: None,
-                size: 3,
-                default: None,
-                attributes: Default::default()
-            }))
-            .is_err(),);
+        assert!(
+            value
+                .resolve(&Schema::Fixed(FixedSchema {
+                    name: "test".into(),
+                    aliases: None,
+                    doc: None,
+                    size: 3,
+                    default: None,
+                    attributes: Default::default()
+                }))
+                .is_err(),
+        );
 
         Ok(())
     }
@@ -3184,34 +3210,138 @@ Field with name '"b"' is not a member of the map 
items"#,
 
     #[test]
     fn avro_4029_resolve_from_unsupported_err() -> TestResult {
-        let data: Vec<(&str, Value, &str)> = vec!(
-            (r#"{ "name": "NAME", "type": "int" }"#, Value::Float(123_f32), 
"Expected Value::Int, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "fixed", "size": 3 }"#, 
Value::Float(123_f32), "String expected for fixed, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "bytes" }"#, Value::Float(123_f32), 
"Expected Value::Bytes, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "string", "logicalType": "uuid" }"#, 
Value::String("abc-1234".into()), "Failed to convert &str to UUID: invalid 
group count: expected 5, found 2"),
-            (r#"{ "name": "NAME", "type": "string", "logicalType": "uuid" }"#, 
Value::Float(123_f32), "Expected Value::Uuid, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "bytes", "logicalType": 
"big-decimal" }"#, Value::Float(123_f32), "Expected Value::BigDecimal, got: 
Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "fixed", "size": 12, "logicalType": 
"duration" }"#, Value::Float(123_f32), "Expected Value::Duration or 
Value::Fixed(12), got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "bytes", "logicalType": "decimal", 
"precision": 4, "scale": 3 }"#, Value::Float(123_f32), "Expected 
Value::Decimal, Value::Bytes or Value::Fixed, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "bytes" }"#, 
Value::Array(vec!(Value::Long(256_i64))), "Unable to convert to u8, got 
Int(256)"),
-            (r#"{ "name": "NAME", "type": "int", "logicalType": "date" }"#, 
Value::Float(123_f32), "Expected Value::Date or Value::Int, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "int", "logicalType": "time-millis" 
}"#, Value::Float(123_f32), "Expected Value::TimeMillis or Value::Int, got: 
Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "long", "logicalType": "time-micros" 
}"#, Value::Float(123_f32), "Expected Value::TimeMicros, Value::Long or 
Value::Int, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "long", "logicalType": 
"timestamp-millis" }"#, Value::Float(123_f32), "Expected 
Value::TimestampMillis, Value::Long or Value::Int, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "long", "logicalType": 
"timestamp-micros" }"#, Value::Float(123_f32), "Expected 
Value::TimestampMicros, Value::Long or Value::Int, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "long", "logicalType": 
"timestamp-nanos" }"#, Value::Float(123_f32), "Expected Value::TimestampNanos, 
Value::Long or Value::Int, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "long", "logicalType": 
"local-timestamp-millis" }"#, Value::Float(123_f32), "Expected 
Value::LocalTimestampMillis, Value::Long or Value::Int, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "long", "logicalType": 
"local-timestamp-micros" }"#, Value::Float(123_f32), "Expected 
Value::LocalTimestampMicros, Value::Long or Value::Int, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "long", "logicalType": 
"local-timestamp-nanos" }"#, Value::Float(123_f32), "Expected 
Value::LocalTimestampNanos, Value::Long or Value::Int, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "null" }"#, Value::Float(123_f32), 
"Expected Value::Null, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "boolean" }"#, 
Value::Float(123_f32), "Expected Value::Boolean, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "int" }"#, Value::Float(123_f32), 
"Expected Value::Int, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "long" }"#, Value::Float(123_f32), 
"Expected Value::Long or Value::Int, got: Float(123.0)"),
-            (r#"{ "name": "NAME", "type": "float" }"#, Value::Boolean(false), 
r#"Expected Value::Float, Value::Double, Value::Int, Value::Long or 
Value::String ("NaN", "INF", "Infinity", "-INF" or "-Infinity"), got: 
Boolean(false)"#),
-            (r#"{ "name": "NAME", "type": "double" }"#, Value::Boolean(false), 
r#"Expected Value::Double, Value::Float, Value::Int, Value::Long or 
Value::String ("NaN", "INF", "Infinity", "-INF" or "-Infinity"), got: 
Boolean(false)"#),
-            (r#"{ "name": "NAME", "type": "string" }"#, Value::Boolean(false), 
"Expected Value::String, Value::Bytes or Value::Fixed, got: Boolean(false)"),
-            (r#"{ "name": "NAME", "type": "enum", "symbols": ["one", "two"] 
}"#, Value::Boolean(false), "Expected Value::Enum, got: Boolean(false)"),
-        );
+        let data: Vec<(&str, Value, &str)> = vec![
+            (
+                r#"{ "name": "NAME", "type": "int" }"#,
+                Value::Float(123_f32),
+                "Expected Value::Int, got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "fixed", "size": 3 }"#,
+                Value::Float(123_f32),
+                "String expected for fixed, got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "bytes" }"#,
+                Value::Float(123_f32),
+                "Expected Value::Bytes, got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "string", "logicalType": "uuid" 
}"#,
+                Value::String("abc-1234".into()),
+                "Failed to convert &str to UUID: invalid group count: expected 
5, found 2",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "string", "logicalType": "uuid" 
}"#,
+                Value::Float(123_f32),
+                "Expected Value::Uuid, got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "bytes", "logicalType": 
"big-decimal" }"#,
+                Value::Float(123_f32),
+                "Expected Value::BigDecimal, got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "fixed", "size": 12, 
"logicalType": "duration" }"#,
+                Value::Float(123_f32),
+                "Expected Value::Duration or Value::Fixed(12), got: 
Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "bytes", "logicalType": 
"decimal", "precision": 4, "scale": 3 }"#,
+                Value::Float(123_f32),
+                "Expected Value::Decimal, Value::Bytes or Value::Fixed, got: 
Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "bytes" }"#,
+                Value::Array(vec![Value::Long(256_i64)]),
+                "Unable to convert to u8, got Int(256)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "int", "logicalType": "date" }"#,
+                Value::Float(123_f32),
+                "Expected Value::Date or Value::Int, got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "int", "logicalType": 
"time-millis" }"#,
+                Value::Float(123_f32),
+                "Expected Value::TimeMillis or Value::Int, got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "long", "logicalType": 
"time-micros" }"#,
+                Value::Float(123_f32),
+                "Expected Value::TimeMicros, Value::Long or Value::Int, got: 
Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "long", "logicalType": 
"timestamp-millis" }"#,
+                Value::Float(123_f32),
+                "Expected Value::TimestampMillis, Value::Long or Value::Int, 
got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "long", "logicalType": 
"timestamp-micros" }"#,
+                Value::Float(123_f32),
+                "Expected Value::TimestampMicros, Value::Long or Value::Int, 
got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "long", "logicalType": 
"timestamp-nanos" }"#,
+                Value::Float(123_f32),
+                "Expected Value::TimestampNanos, Value::Long or Value::Int, 
got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "long", "logicalType": 
"local-timestamp-millis" }"#,
+                Value::Float(123_f32),
+                "Expected Value::LocalTimestampMillis, Value::Long or 
Value::Int, got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "long", "logicalType": 
"local-timestamp-micros" }"#,
+                Value::Float(123_f32),
+                "Expected Value::LocalTimestampMicros, Value::Long or 
Value::Int, got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "long", "logicalType": 
"local-timestamp-nanos" }"#,
+                Value::Float(123_f32),
+                "Expected Value::LocalTimestampNanos, Value::Long or 
Value::Int, got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "null" }"#,
+                Value::Float(123_f32),
+                "Expected Value::Null, got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "boolean" }"#,
+                Value::Float(123_f32),
+                "Expected Value::Boolean, got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "int" }"#,
+                Value::Float(123_f32),
+                "Expected Value::Int, got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "long" }"#,
+                Value::Float(123_f32),
+                "Expected Value::Long or Value::Int, got: Float(123.0)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "float" }"#,
+                Value::Boolean(false),
+                r#"Expected Value::Float, Value::Double, Value::Int, 
Value::Long or Value::String ("NaN", "INF", "Infinity", "-INF" or "-Infinity"), 
got: Boolean(false)"#,
+            ),
+            (
+                r#"{ "name": "NAME", "type": "double" }"#,
+                Value::Boolean(false),
+                r#"Expected Value::Double, Value::Float, Value::Int, 
Value::Long or Value::String ("NaN", "INF", "Infinity", "-INF" or "-Infinity"), 
got: Boolean(false)"#,
+            ),
+            (
+                r#"{ "name": "NAME", "type": "string" }"#,
+                Value::Boolean(false),
+                "Expected Value::String, Value::Bytes or Value::Fixed, got: 
Boolean(false)",
+            ),
+            (
+                r#"{ "name": "NAME", "type": "enum", "symbols": ["one", "two"] 
}"#,
+                Value::Boolean(false),
+                "Expected Value::Enum, got: Boolean(false)",
+            ),
+        ];
 
         for (schema_str, value, expected_error) in data {
             let schema = Schema::parse_str(schema_str)?;
diff --git a/avro/src/util.rs b/avro/src/util.rs
index 9247694..1264a8a 100644
--- a/avro/src/util.rs
+++ b/avro/src/util.rs
@@ -15,13 +15,13 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use crate::{schema::Documentation, AvroResult, Error};
+use crate::{AvroResult, Error, schema::Documentation};
 use serde_json::{Map, Value};
 use std::{
     io::{Read, Write},
     sync::{
-        atomic::{AtomicBool, AtomicUsize, Ordering},
         Once,
+        atomic::{AtomicBool, AtomicUsize, Ordering},
     },
 };
 
diff --git a/avro/src/validator.rs b/avro/src/validator.rs
index f2e178b..5012a4a 100644
--- a/avro/src/validator.rs
+++ b/avro/src/validator.rs
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use crate::{schema::Namespace, AvroResult, Error};
+use crate::{AvroResult, Error, schema::Namespace};
 use log::debug;
 use regex_lite::Regex;
 use std::sync::OnceLock;
diff --git a/avro/src/writer.rs b/avro/src/writer.rs
index 1950430..413e60a 100644
--- a/avro/src/writer.rs
+++ b/avro/src/writer.rs
@@ -17,12 +17,12 @@
 
 //! Logic handling writing in Avro format at user level.
 use crate::{
+    AvroResult, Codec, Error,
     encode::{encode, encode_internal, encode_to_vec},
     headers::{HeaderBuilder, RabinFingerprintHeader},
     schema::{AvroSchema, Name, ResolvedOwnedSchema, ResolvedSchema, Schema},
     ser_schema::SchemaAwareWriteSerializer,
     types::Value,
-    AvroResult, Codec, Error,
 };
 use serde::Serialize;
 use std::{
@@ -757,6 +757,7 @@ mod tests {
 
     use super::*;
     use crate::{
+        Reader,
         decimal::Decimal,
         duration::{Days, Duration, Millis, Months},
         headers::GlueSchemaUuidHeader,
@@ -764,7 +765,6 @@ mod tests {
         schema::{DecimalSchema, FixedSchema, Name},
         types::Record,
         util::zig_i64,
-        Reader,
     };
     use pretty_assertions::assert_eq;
     use serde::{Deserialize, Serialize};
@@ -1351,12 +1351,19 @@ mod tests {
         let key = "avro.stringKey".to_string();
         match writer.add_user_metadata(key.clone(), "value") {
             Err(ref e @ Error::InvalidMetadataKey(_)) => {
-                assert_eq!(e.to_string(), format!("Metadata keys starting with 
'avro.' are reserved for internal usage: {key}."))
+                assert_eq!(
+                    e.to_string(),
+                    format!(
+                        "Metadata keys starting with 'avro.' are reserved for 
internal usage: {key}."
+                    )
+                )
             }
             Err(e) => panic!(
                 "Unexpected error occurred while writing user metadata with 
reserved prefix ('avro.'): {e:?}"
             ),
-            Ok(_) => panic!("Expected an error that the metadata key cannot be 
prefixed with 'avro.'"),
+            Ok(_) => {
+                panic!("Expected an error that the metadata key cannot be 
prefixed with 'avro.'")
+            }
         }
 
         Ok(())
diff --git a/avro/tests/append_to_existing.rs b/avro/tests/append_to_existing.rs
index 28120b6..e9af4b3 100644
--- a/avro/tests/append_to_existing.rs
+++ b/avro/tests/append_to_existing.rs
@@ -16,9 +16,8 @@
 // under the License.
 
 use apache_avro::{
-    read_marker,
+    AvroResult, Reader, Schema, Writer, read_marker,
     types::{Record, Value},
-    AvroResult, Reader, Schema, Writer,
 };
 use apache_avro_test_helper::TestResult;
 
diff --git a/avro/tests/avro-3786.rs b/avro/tests/avro-3786.rs
index a0e7714..c509a3f 100644
--- a/avro/tests/avro-3786.rs
+++ b/avro/tests/avro-3786.rs
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use apache_avro::{from_avro_datum, to_avro_datum, to_value, types, Schema};
+use apache_avro::{Schema, from_avro_datum, to_avro_datum, to_value, types};
 use apache_avro_test_helper::TestResult;
 
 #[test]
@@ -611,8 +611,8 @@ fn 
deserialize_union_with_different_enum_order_defined_in_record() -> TestResult
 }
 
 #[test]
-fn 
deserialize_union_with_record_with_enum_defined_inline_reader_has_different_indices(
-) -> TestResult {
+fn 
deserialize_union_with_record_with_enum_defined_inline_reader_has_different_indices()
+-> TestResult {
     #[derive(
         Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Clone, 
serde::Deserialize, serde::Serialize,
     )]
diff --git a/avro/tests/avro-3787.rs b/avro/tests/avro-3787.rs
index c08c3c6..1795fca 100644
--- a/avro/tests/avro-3787.rs
+++ b/avro/tests/avro-3787.rs
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use apache_avro::{from_avro_datum, to_avro_datum, to_value, types, Schema};
+use apache_avro::{Schema, from_avro_datum, to_avro_datum, to_value, types};
 use apache_avro_test_helper::TestResult;
 
 #[test]
diff --git a/avro/tests/codecs.rs b/avro/tests/codecs.rs
index 02137e9..f58f770 100644
--- a/avro/tests/codecs.rs
+++ b/avro/tests/codecs.rs
@@ -16,8 +16,8 @@
 // under the License.
 
 use apache_avro::{
-    types::{Record, Value},
     Codec, DeflateSettings, Reader, Schema, Writer,
+    types::{Record, Value},
 };
 use apache_avro_test_helper::TestResult;
 use miniz_oxide::deflate::CompressionLevel;
diff --git a/avro/tests/io.rs b/avro/tests/io.rs
index c6589a9..0943eab 100644
--- a/avro/tests/io.rs
+++ b/avro/tests/io.rs
@@ -16,7 +16,7 @@
 // under the License.
 
 //! Port of 
https://github.com/apache/avro/blob/release-1.9.1/lang/py/test/test_io.py
-use apache_avro::{from_avro_datum, to_avro_datum, types::Value, Error, Schema};
+use apache_avro::{Error, Schema, from_avro_datum, to_avro_datum, types::Value};
 use apache_avro_test_helper::TestResult;
 use pretty_assertions::assert_eq;
 use std::{io::Cursor, sync::OnceLock};
diff --git a/avro/tests/schema.rs b/avro/tests/schema.rs
index 73967bb..96ba41d 100644
--- a/avro/tests/schema.rs
+++ b/avro/tests/schema.rs
@@ -21,15 +21,15 @@ use std::{
 };
 
 use apache_avro::{
-    from_avro_datum, from_value,
+    Codec, Error, Reader, Schema, Writer, from_avro_datum, from_value,
     schema::{EnumSchema, FixedSchema, Name, RecordField, RecordSchema},
     to_avro_datum, to_value,
     types::{Record, Value},
-    Codec, Error, Reader, Schema, Writer,
 };
 use apache_avro_test_helper::{
-    data::{examples, valid_examples, DOC_EXAMPLES},
-    init, TestResult,
+    TestResult,
+    data::{DOC_EXAMPLES, examples, valid_examples},
+    init,
 };
 
 #[test]
@@ -366,11 +366,11 @@ fn test_parse_reused_record_schema_by_fullname() -> 
TestResult {
             assert_eq!(fields.len(), 3, "The number of the fields is not 
correct!");
 
             let RecordField {
-                ref name,
+                name,
                 doc: _,
                 default: _,
                 aliases: _,
-                ref schema,
+                schema,
                 order: _,
                 position: _,
                 custom_attributes: _,
@@ -379,7 +379,7 @@ fn test_parse_reused_record_schema_by_fullname() -> 
TestResult {
             assert_eq!(name, "min_temp");
 
             match schema {
-                Schema::Ref { ref name } => {
+                Schema::Ref { name } => {
                     assert_eq!(name.fullname(None), "prefix.Temp", "Name does 
not match!");
                 }
                 unexpected => unreachable!("Unexpected schema type: {:?}", 
unexpected),
diff --git a/avro/tests/shared.rs b/avro/tests/shared.rs
index df12129..c9397df 100644
--- a/avro/tests/shared.rs
+++ b/avro/tests/shared.rs
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use apache_avro::{types::Value, Codec, Reader, Schema, Writer};
+use apache_avro::{Codec, Reader, Schema, Writer, types::Value};
 use apache_avro_test_helper::TestResult;
 use std::{
     fmt,
diff --git a/avro/tests/to_from_avro_datum_schemata.rs 
b/avro/tests/to_from_avro_datum_schemata.rs
index 9986cbb..c300c0f 100644
--- a/avro/tests/to_from_avro_datum_schemata.rs
+++ b/avro/tests/to_from_avro_datum_schemata.rs
@@ -16,10 +16,10 @@
 // under the License.
 
 use apache_avro::{
-    from_avro_datum_reader_schemata, from_avro_datum_schemata, 
to_avro_datum_schemata,
-    types::Value, Codec, Reader, Schema, Writer,
+    Codec, Reader, Schema, Writer, from_avro_datum_reader_schemata, 
from_avro_datum_schemata,
+    to_avro_datum_schemata, types::Value,
 };
-use apache_avro_test_helper::{init, TestResult};
+use apache_avro_test_helper::{TestResult, init};
 
 static SCHEMA_A_STR: &str = r#"{
         "name": "A",
diff --git a/avro/tests/union_schema.rs b/avro/tests/union_schema.rs
index db0f356..b9c22ff 100644
--- a/avro/tests/union_schema.rs
+++ b/avro/tests/union_schema.rs
@@ -15,8 +15,8 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use apache_avro::{from_value, AvroResult, Codec, Reader, Schema, Writer};
-use serde::{de::DeserializeOwned, Deserialize, Serialize};
+use apache_avro::{AvroResult, Codec, Reader, Schema, Writer, from_value};
+use serde::{Deserialize, Serialize, de::DeserializeOwned};
 
 static SCHEMA_A_STR: &str = r#"{
         "name": "A",
diff --git a/avro/tests/validators.rs b/avro/tests/validators.rs
index fc45353..ab37248 100644
--- a/avro/tests/validators.rs
+++ b/avro/tests/validators.rs
@@ -16,13 +16,13 @@
 // under the License.
 
 use apache_avro::{
+    AvroResult,
     schema::Namespace,
     validator::{
-        set_enum_symbol_name_validator, set_record_field_name_validator, 
set_schema_name_validator,
-        set_schema_namespace_validator, EnumSymbolNameValidator, 
RecordFieldNameValidator,
-        SchemaNameValidator, SchemaNamespaceValidator,
+        EnumSymbolNameValidator, RecordFieldNameValidator, SchemaNameValidator,
+        SchemaNamespaceValidator, set_enum_symbol_name_validator, 
set_record_field_name_validator,
+        set_schema_name_validator, set_schema_namespace_validator,
     },
-    AvroResult,
 };
 use apache_avro_test_helper::TestResult;
 
diff --git a/avro_derive/src/lib.rs b/avro_derive/src/lib.rs
index 767a46a..6e84658 100644
--- a/avro_derive/src/lib.rs
+++ b/avro_derive/src/lib.rs
@@ -22,8 +22,8 @@ use proc_macro2::{Span, TokenStream};
 use quote::quote;
 
 use syn::{
-    parse_macro_input, spanned::Spanned, AttrStyle, Attribute, DeriveInput, 
Ident, Meta, Type,
-    TypePath,
+    AttrStyle, Attribute, DeriveInput, Ident, Meta, Type, TypePath, 
parse_macro_input,
+    spanned::Spanned,
 };
 
 #[derive(darling::FromAttributes)]
@@ -106,7 +106,7 @@ fn derive_avro_schema(input: &mut DeriveInput) -> 
Result<TokenStream, Vec<syn::E
             return Err(vec![syn::Error::new(
                 input.ident.span(),
                 "AvroSchema derive only works for structs and simple enums ",
-            )])
+            )]);
         }
     };
     let ident = &input.ident;
@@ -198,13 +198,13 @@ fn get_data_struct_schema_def(
             return Err(vec![syn::Error::new(
                 error_span,
                 "AvroSchema derive does not work for tuple structs",
-            )])
+            )]);
         }
         syn::Fields::Unit => {
             return Err(vec![syn::Error::new(
                 error_span,
                 "AvroSchema derive does not work for unit structs",
-            )])
+            )]);
         }
     }
     let record_doc = preserve_optional(record_doc);
@@ -287,13 +287,13 @@ fn type_to_schema_expr(ty: &Type) -> Result<TokenStream, 
Vec<syn::Error>> {
                 return Err(vec![syn::Error::new_spanned(
                     ty,
                     "AvroSchema: Cannot guarantee successful deserialization 
of this type",
-                )])
+                )]);
             }
             "u64" => {
                 return Err(vec![syn::Error::new_spanned(
-                ty,
-                "Cannot guarantee successful serialization of this type due to 
overflow concerns",
-            )])
+                    ty,
+                    "Cannot guarantee successful serialization of this type 
due to overflow concerns",
+                )]);
             } // Can't guarantee serialization type
             _ => {
                 // Fails when the type does not implement AvroSchemaComponent 
directly
@@ -376,11 +376,7 @@ fn extract_outer_doc(attributes: &[Attribute]) -> 
Option<String> {
         })
         .collect::<Vec<String>>()
         .join("\n");
-    if doc.is_empty() {
-        None
-    } else {
-        Some(doc)
-    }
+    if doc.is_empty() { None } else { Some(doc) }
 }
 
 fn preserve_optional(op: Option<impl quote::ToTokens>) -> TokenStream {
@@ -633,10 +629,12 @@ mod tests {
             Ok(mut input) => {
                 let schema_token_stream = derive_avro_schema(&mut input);
                 assert!(&schema_token_stream.is_ok());
-                assert!(schema_token_stream
-                    .unwrap()
-                    .to_string()
-                    .contains("namespace.testing"))
+                assert!(
+                    schema_token_stream
+                        .unwrap()
+                        .to_string()
+                        .contains("namespace.testing")
+                )
             }
             Err(error) => panic!(
                 "Failed to parse as derive input when it should be able to. 
Error: {error:?}"
diff --git a/avro_derive/tests/derive.rs b/avro_derive/tests/derive.rs
index 721b6d4..a379b7b 100644
--- a/avro_derive/tests/derive.rs
+++ b/avro_derive/tests/derive.rs
@@ -16,13 +16,12 @@
 // under the License.
 
 use apache_avro::{
-    from_value,
-    schema::{derive::AvroSchemaComponent, AvroSchema},
-    Reader, Schema, Writer,
+    Reader, Schema, Writer, from_value,
+    schema::{AvroSchema, derive::AvroSchemaComponent},
 };
 use apache_avro_derive::*;
 use proptest::prelude::*;
-use serde::{de::DeserializeOwned, Deserialize, Serialize};
+use serde::{Deserialize, Serialize, de::DeserializeOwned};
 use std::collections::HashMap;
 
 #[cfg(test)]
diff --git a/wasm-demo/tests/demos.rs b/wasm-demo/tests/demos.rs
index d92a97c..30bbe9c 100644
--- a/wasm-demo/tests/demos.rs
+++ b/wasm-demo/tests/demos.rs
@@ -20,7 +20,7 @@
 use std::io::BufWriter;
 use wasm_bindgen_test::*;
 
-use apache_avro::{from_value, to_value, types::Record, Codec, Reader, Schema, 
Writer};
+use apache_avro::{Codec, Reader, Schema, Writer, from_value, to_value, 
types::Record};
 use serde::{Deserialize, Serialize};
 
 wasm_bindgen_test_configure!(run_in_browser);

Reply via email to