Skip to content

Commit 3e2b545

Browse files
committed
Implement Element for isize
1 parent 4223383 commit 3e2b545

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
@@ -312,10 +312,9 @@ impl_num_element!(c32, DataType::Complex32);
312312
impl_num_element!(c64, DataType::Complex64);
313313

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

@@ -329,7 +328,7 @@ unsafe impl Element for PyObject {
329328

330329
#[cfg(test)]
331330
mod tests {
332-
use cfg_if::cfg_if;
331+
use std::mem::size_of;
333332

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

@@ -352,13 +351,17 @@ mod tests {
352351
assert_eq!(type_name::<f64>(py), "float64");
353352
assert_eq!(type_name::<c32>(py), "complex64");
354353
assert_eq!(type_name::<c64>(py), "complex128");
355-
cfg_if! {
356-
if #[cfg(target_pointer_width = "64")] {
357-
assert_eq!(type_name::<usize>(py), "uint64");
358-
} else if #[cfg(target_pointer_width = "32")] {
354+
match size_of::<usize>() {
355+
32 => {
359356
assert_eq!(type_name::<usize>(py), "uint32");
357+
assert_eq!(type_name::<isize>(py), "int32");
358+
}
359+
64 => {
360+
assert_eq!(type_name::<usize>(py), "uint64");
361+
assert_eq!(type_name::<isize>(py), "int64");
360362
}
363+
_ => {}
361364
}
362-
})
365+
});
363366
}
364367
}

0 commit comments

Comments
 (0)