From 713fae388c6d0d2bb775f094d8432655f06917c3 Mon Sep 17 00:00:00 2001 From: Alejandro Cabeza Romero Date: Thu, 14 May 2026 14:40:46 +0200 Subject: [PATCH] Make Witness a wrapper type. --- .../src/native.rs | 2 +- .../src/native.rs | 2 +- .../src/native.rs | 2 +- .../src/native.rs | 2 +- .../src/native/witness.rs | 16 ++++++++++++++-- 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/rust/logos-blockchain-circuits-poc-sys/src/native.rs b/rust/logos-blockchain-circuits-poc-sys/src/native.rs index dd2a213..b813ad3 100644 --- a/rust/logos-blockchain-circuits-poc-sys/src/native.rs +++ b/rust/logos-blockchain-circuits-poc-sys/src/native.rs @@ -77,6 +77,6 @@ mod tests { witness_output_path.display() ) }); - assert_eq!(output.iter().as_slice(), expected.as_slice()); + assert_eq!(output.as_ref().iter().as_slice(), expected.as_slice()); } } diff --git a/rust/logos-blockchain-circuits-pol-sys/src/native.rs b/rust/logos-blockchain-circuits-pol-sys/src/native.rs index c6d04c8..6f04193 100644 --- a/rust/logos-blockchain-circuits-pol-sys/src/native.rs +++ b/rust/logos-blockchain-circuits-pol-sys/src/native.rs @@ -77,6 +77,6 @@ mod tests { witness_output_path.display() ) }); - assert_eq!(output.iter().as_slice(), expected.as_slice()); + assert_eq!(output.as_ref().iter().as_slice(), expected.as_slice()); } } diff --git a/rust/logos-blockchain-circuits-poq-sys/src/native.rs b/rust/logos-blockchain-circuits-poq-sys/src/native.rs index 5ca04ef..a15c5a7 100644 --- a/rust/logos-blockchain-circuits-poq-sys/src/native.rs +++ b/rust/logos-blockchain-circuits-poq-sys/src/native.rs @@ -77,6 +77,6 @@ mod tests { witness_output_path.display() ) }); - assert_eq!(output.iter().as_slice(), expected.as_slice()); + assert_eq!(output.as_ref().iter().as_slice(), expected.as_slice()); } } diff --git a/rust/logos-blockchain-circuits-signature-sys/src/native.rs b/rust/logos-blockchain-circuits-signature-sys/src/native.rs index dde8030..3e586dc 100644 --- a/rust/logos-blockchain-circuits-signature-sys/src/native.rs +++ b/rust/logos-blockchain-circuits-signature-sys/src/native.rs @@ -82,6 +82,6 @@ mod tests { witness_output_path.display() ) }); - assert_eq!(output.iter().as_slice(), expected.as_slice()); + assert_eq!(output.as_ref().iter().as_slice(), expected.as_slice()); } } diff --git a/rust/logos-blockchain-circuits-types/src/native/witness.rs b/rust/logos-blockchain-circuits-types/src/native/witness.rs index 9f5181f..c654838 100644 --- a/rust/logos-blockchain-circuits-types/src/native/witness.rs +++ b/rust/logos-blockchain-circuits-types/src/native/witness.rs @@ -4,7 +4,19 @@ use crate::ffi; /// /// When constructing from [`From`], it takes ownership of the underlying value and /// frees it. -pub type Witness = bytes::Bytes; +pub struct Witness(bytes::Bytes); + +impl From for Witness { + fn from(bytes: bytes::Bytes) -> Self { + Self(bytes) + } +} + +impl AsRef for Witness { + fn as_ref(&self) -> &bytes::Bytes { + &self.0 + } +} impl From for Witness { fn from(mut ffi_value: ffi::Bytes) -> Self { @@ -17,6 +29,6 @@ impl From for Witness { }; // SAFETY: `ffi_value` is a local variable, so the raw pointer is valid for this call. unsafe { ffi::free_bytes(&raw mut ffi_value) }; - Self::from(vec) + Self::from(bytes::Bytes::from(vec)) } }