From c395c55b7acc84b10dbe6896398ca4df32b2a48a Mon Sep 17 00:00:00 2001 From: Blaine Bublitz Date: Fri, 12 May 2023 09:04:00 -0700 Subject: [PATCH 1/2] fix(acir): Hide variants of WitnessMapError and export it from package --- acir/src/native_types/mod.rs | 1 + acir/src/native_types/witness_map.rs | 16 +++++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/acir/src/native_types/mod.rs b/acir/src/native_types/mod.rs index c54e63095..66c822bff 100644 --- a/acir/src/native_types/mod.rs +++ b/acir/src/native_types/mod.rs @@ -5,3 +5,4 @@ mod witness_map; pub use expression::Expression; pub use witness::Witness; pub use witness_map::WitnessMap; +pub use witness_map::WitnessMapError; diff --git a/acir/src/native_types/witness_map.rs b/acir/src/native_types/witness_map.rs index 9f814eab3..4df598dbd 100644 --- a/acir/src/native_types/witness_map.rs +++ b/acir/src/native_types/witness_map.rs @@ -15,7 +15,7 @@ use thiserror::Error; use crate::native_types::Witness; #[derive(Debug, Error)] -pub enum WitnessMapError { +enum SerializationError { #[error(transparent)] MsgpackEncode(#[from] rmp_serde::encode::Error), @@ -26,6 +26,10 @@ pub enum WitnessMapError { Deflate(#[from] std::io::Error), } +#[derive(Debug, Error)] +#[error(transparent)] +pub struct WitnessMapError(#[from] SerializationError); + /// A map from the witnesses in a constraint system to the field element values #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Default, Serialize, Deserialize)] pub struct WitnessMap(BTreeMap); @@ -85,10 +89,10 @@ impl TryFrom for Vec { type Error = WitnessMapError; fn try_from(val: WitnessMap) -> Result { - let buf = rmp_serde::to_vec(&val)?; + let buf = rmp_serde::to_vec(&val).map_err(|err| WitnessMapError(err.into()))?; let mut deflater = DeflateEncoder::new(buf.as_slice(), Compression::best()); let mut buf_c = Vec::new(); - deflater.read_to_end(&mut buf_c)?; + deflater.read_to_end(&mut buf_c).map_err(|err| WitnessMapError(err.into()))?; Ok(buf_c) } } @@ -99,7 +103,9 @@ impl TryFrom<&[u8]> for WitnessMap { fn try_from(bytes: &[u8]) -> Result { let mut deflater = DeflateDecoder::new(bytes); let mut buf_d = Vec::new(); - deflater.read_to_end(&mut buf_d)?; - Ok(Self(rmp_serde::from_slice(buf_d.as_slice())?)) + deflater.read_to_end(&mut buf_d).map_err(|err| WitnessMapError(err.into()))?; + let witness_map = + rmp_serde::from_slice(buf_d.as_slice()).map_err(|err| WitnessMapError(err.into()))?; + Ok(Self(witness_map)) } } From 7349564c45942f3803551869b4b972506835ce03 Mon Sep 17 00:00:00 2001 From: Blaine Bublitz Date: Fri, 12 May 2023 10:32:20 -0700 Subject: [PATCH 2/2] cspell --- cspell.json | 1 + 1 file changed, 1 insertion(+) diff --git a/cspell.json b/cspell.json index 4f511d2d2..0d932419f 100644 --- a/cspell.json +++ b/cspell.json @@ -34,6 +34,7 @@ "stdlib", "struct", "TORADIX", + "Msgpack", // Dependencies // "bufread",