diff --git a/lang/rust/avro/src/decimal.rs b/lang/rust/avro/src/decimal.rs index da5cb35f00f..4237d710878 100644 --- a/lang/rust/avro/src/decimal.rs +++ b/lang/rust/avro/src/decimal.rs @@ -126,7 +126,7 @@ pub(crate) fn deserialize_big_decimal(bytes: &Vec) -> Result vec![0u8; size], - Err(_err) => return Err(Error::BigDecimalLen), + Err(err) => return Err(Error::BigDecimalLen(Box::new(err))), }; bytes diff --git a/lang/rust/avro/src/error.rs b/lang/rust/avro/src/error.rs index 1487296a716..7b27ad57b55 100644 --- a/lang/rust/avro/src/error.rs +++ b/lang/rust/avro/src/error.rs @@ -292,13 +292,13 @@ pub enum Error { #[error("The decimal precision ({precision}) must be a positive number")] DecimalPrecisionMuBePositive { precision: usize }, - #[error("Unreadable decimal sign")] + #[error("Unreadable big decimal sign")] BigDecimalSign, - #[error("Unreadable length for decimal inner bytes")] - BigDecimalLen, + #[error("Unreadable length for big decimal inner bytes: {0}")] + BigDecimalLen(#[source] Box), - #[error("Unreadable decimal scale")] + #[error("Unreadable big decimal scale")] BigDecimalScale, #[error("Unexpected `type` {0} variant for `logicalType`")]