Skip to content

Commit 515baae

Browse files
committed
Implement Into<JsValue> for boxed slices of numbers as well
1 parent 1e67de6 commit 515baae

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

src/lib.rs

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1953,18 +1953,18 @@ impl From<JsError> for JsValue {
19531953
macro_rules! typed_arrays {
19541954
($($ty:ident $ctor:ident $clamped_ctor:ident,)*) => {
19551955
$(
1956-
impl From<Vec<$ty>> for JsValue {
1957-
fn from(mut vec: Vec<$ty>) -> Self {
1958-
let result = unsafe { JsValue::_new($ctor(vec.as_mut_ptr(), vec.len())) };
1959-
mem::forget(vec);
1956+
impl From<Box<[$ty]>> for JsValue {
1957+
fn from(mut vector: Box<[$ty]>) -> Self {
1958+
let result = unsafe { JsValue::_new($ctor(vector.as_mut_ptr(), vector.len())) };
1959+
mem::forget(vector);
19601960
result
19611961
}
19621962
}
19631963

1964-
impl From<Clamped<Vec<$ty>>> for JsValue {
1965-
fn from(mut vec: Clamped<Vec<$ty>>) -> Self {
1966-
let result = unsafe { JsValue::_new($clamped_ctor(vec.as_mut_ptr(), vec.len())) };
1967-
mem::forget(vec);
1964+
impl From<Clamped<Box<[$ty]>>> for JsValue {
1965+
fn from(mut vector: Clamped<Box<[$ty]>>) -> Self {
1966+
let result = unsafe { JsValue::_new($clamped_ctor(vector.as_mut_ptr(), vector.len())) };
1967+
mem::forget(vector);
19681968
result
19691969
}
19701970
}
@@ -2011,3 +2011,12 @@ where
20112011
JsValue::from(vector.into_boxed_slice())
20122012
}
20132013
}
2014+
2015+
impl<T> From<Clamped<Vec<T>>> for JsValue
2016+
where
2017+
JsValue: From<Clamped<Box<[T]>>>,
2018+
{
2019+
fn from(vector: Clamped<Vec<T>>) -> Self {
2020+
JsValue::from(Clamped(vector.0.into_boxed_slice()))
2021+
}
2022+
}

0 commit comments

Comments
 (0)