diff --git a/primitives/src/witness.rs b/primitives/src/witness.rs index 101c37caa..b2242932a 100644 --- a/primitives/src/witness.rs +++ b/primitives/src/witness.rs @@ -410,6 +410,46 @@ impl From> for Witness { fn from(vec: Vec<&[u8]>) -> Self { Witness::from_slice(&vec) } } +impl From<[&[u8]; N]> for Witness { + #[inline] + fn from(arr: [&[u8]; N]) -> Self { Witness::from_slice(&arr) } +} + +impl From<&[&[u8]; N]> for Witness { + #[inline] + fn from(arr: &[&[u8]; N]) -> Self { Witness::from_slice(arr) } +} + +impl From<&[[u8; N]]> for Witness { + #[inline] + fn from(slice: &[[u8; N]]) -> Self { Witness::from_slice(slice) } +} + +impl From<&[&[u8; N]]> for Witness { + #[inline] + fn from(slice: &[&[u8; N]]) -> Self { Witness::from_slice(slice) } +} + +impl From<[[u8; M]; N]> for Witness { + #[inline] + fn from(slice: [[u8; M]; N]) -> Self { Witness::from_slice(&slice) } +} + +impl From<&[[u8; M]; N]> for Witness { + #[inline] + fn from(slice: &[[u8; M]; N]) -> Self { Witness::from_slice(slice) } +} + +impl From<[&[u8; M]; N]> for Witness { + #[inline] + fn from(slice: [&[u8; M]; N]) -> Self { Witness::from_slice(&slice) } +} + +impl From<&[&[u8; M]; N]> for Witness { + #[inline] + fn from(slice: &[&[u8; M]; N]) -> Self { Witness::from_slice(slice) } +} + impl Default for Witness { #[inline] fn default() -> Self { Self::new() }