From a6ffb75098c4dc8a65e97285f84df56b2e681d82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kevin=20L=C3=A4ufer?= Date: Tue, 17 Sep 2024 12:06:06 -0400 Subject: [PATCH] implement conversion from bit vec ref to owned --- Cargo.toml | 2 +- src/value/owned.rs | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f89f4e0..059249b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "baa" -version = "0.9.4" +version = "0.9.5" edition = "2021" authors = ["Kevin Laeufer "] description = "BitVector and Array Arithmetic" diff --git a/src/value/owned.rs b/src/value/owned.rs index 4f28400..56ae484 100644 --- a/src/value/owned.rs +++ b/src/value/owned.rs @@ -5,7 +5,7 @@ use crate::io::strings::ParseIntError; use crate::ops::{ArrayMutOps, ArrayOps}; -use crate::{BitVecMutOps, BitVecOps, WidthInt, Word}; +use crate::{BitVecMutOps, BitVecOps, BitVecValueRef, WidthInt, Word}; use smallvec::{smallvec, SmallVec}; pub(crate) type ValueVec = SmallVec<[Word; 2]>; @@ -103,6 +103,12 @@ impl From for BitVecValue { } } +impl<'a> From> for BitVecValue { + fn from(value: BitVecValueRef<'a>) -> Self { + Self::new(value.width, SmallVec::from_slice(value.words)) + } +} + /// Owned dense bit-vector array. #[derive(Clone)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))]