Skip to content

Commit 6688d79

Browse files
committed
Implement Element for isize
1 parent c454a5e commit 6688d79

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

src/dtype.rs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -313,10 +313,9 @@ impl_num_element!(c32, DataType::Complex32);
313313
impl_num_element!(c64, DataType::Complex64);
314314

315315
cfg_if! {
316-
if #[cfg(target_pointer_width = "64")] {
317-
impl_num_element!(usize, DataType::Uint64);
318-
} else if #[cfg(target_pointer_width = "32")] {
319-
impl_num_element!(usize, DataType::Uint32);
316+
if #[cfg(any(target_pointer_width = "32", target_pointer_width = "64"))] {
317+
impl_num_element!(usize, DataType::integer::<usize>().unwrap());
318+
impl_num_element!(isize, DataType::integer::<isize>().unwrap());
320319
}
321320
}
322321

@@ -330,7 +329,7 @@ unsafe impl Element for PyObject {
330329

331330
#[cfg(test)]
332331
mod tests {
333-
use cfg_if::cfg_if;
332+
use std::mem::size_of;
334333

335334
use super::{c32, c64, Element, PyArrayDescr};
336335

@@ -353,13 +352,17 @@ mod tests {
353352
assert_eq!(type_name::<f64>(py), "float64");
354353
assert_eq!(type_name::<c32>(py), "complex64");
355354
assert_eq!(type_name::<c64>(py), "complex128");
356-
cfg_if! {
357-
if #[cfg(target_pointer_width = "64")] {
358-
assert_eq!(type_name::<usize>(py), "uint64");
359-
} else if #[cfg(target_pointer_width = "32")] {
355+
match size_of::<usize>() {
356+
32 => {
360357
assert_eq!(type_name::<usize>(py), "uint32");
358+
assert_eq!(type_name::<isize>(py), "int32");
359+
}
360+
64 => {
361+
assert_eq!(type_name::<usize>(py), "uint64");
362+
assert_eq!(type_name::<isize>(py), "int64");
361363
}
364+
_ => {}
362365
}
363-
})
366+
});
364367
}
365368
}

0 commit comments

Comments
 (0)