Skip to content

Commit

Permalink
refactor Int impls for niche types to DRY
Browse files Browse the repository at this point in the history
  • Loading branch information
joseluis committed Jan 23, 2024
1 parent 62c3d7b commit f63e817
Show file tree
Hide file tree
Showing 7 changed files with 73 additions and 150 deletions.
35 changes: 35 additions & 0 deletions src/num/_private.rs
Original file line number Diff line number Diff line change
Expand Up @@ -189,5 +189,40 @@ macro_rules! impl_niche {
Int($self.0.get()).$fn($($arg),*)
}
}};

/* ... */

// Implements locally defined Int methods for all niche types.
(impl_int) => {
impl_int![niche
NonZero:i8<>:"-18":"", NonZero:i16<>:"-19":"-1",
NonZero:i32<>:"-20":"-2", NonZero:i64<>:"-21":"-3",
NonZero:i128<>:"-22":"-4", NonZero:isize<>:"-23":"-5",
NonZero:u8<>:"-12":"-6", NonZero:u16<>:"-13":"-7",
NonZero:u32<>:"-14":"-8", NonZero:u64<>:"-15":"-9",
NonZero:u128<>:"-16":"-10", NonZero:usize<>:"-17":"-11",
//
NonSpecific:i8<V>:"-30":"", NonSpecific:i16<V>:"-31":"-1",
NonSpecific:i32<V>:"-32":"-2", NonSpecific:i64<V>:"-33":"-3",
NonSpecific:i128<V>:"-34":"-4", NonSpecific:isize<V>:"-35":"-5",
NonSpecific:u8<V>:"-24":"-6", NonSpecific:u16<V>:"-25":"-7",
NonSpecific:u32<V>:"-26":"-8", NonSpecific:u64<V>:"-27":"-9",
NonSpecific:u128<V>:"-28":"-10", NonSpecific:usize<V>:"-29":"-11",
//
NonRange:i8<RMIN,RMAX>:"-42":"", NonRange:i16<RMIN,RMAX>:"-43":"-1",
NonRange:i32<RMIN,RMAX>:"-44":"-2", NonRange:i64<RMIN,RMAX>:"-45":"-3",
NonRange:i128<RMIN,RMAX>:"-46":"-4", NonRange:isize<RMIN,RMAX>:"-47":"-5",
NonRange:u8<RMIN,RMAX>:"-36":"-6", NonRange:u16<RMIN,RMAX>:"-37":"-7",
NonRange:u32<RMIN,RMAX>:"-38":"-8", NonRange:u64<RMIN,RMAX>:"-39":"-9",
NonRange:u128<RMIN,RMAX>:"-40":"-10", NonRange:usize<RMIN,RMAX>:"-41":"11",
//
Range:i8<RMIN,RMAX>:"-54":"", Range:i16<RMIN,RMAX>:"-55":"-1",
Range:i32<RMIN,RMAX>:"-56":"-2", Range:i64<RMIN,RMAX>:"-57":"-3",
Range:i128<RMIN,RMAX>:"-58":"-4", Range:isize<RMIN,RMAX>:"-59":"-5",
Range:u8<RMIN,RMAX>:"-48":"-6", Range:u16<RMIN,RMAX>:"-49":"-7",
Range:u32<RMIN,RMAX>:"-50":"-8", Range:u64<RMIN,RMAX>:"-51":"-9",
Range:u128<RMIN,RMAX>:"-52":"-10", Range:usize<RMIN,RMAX>:"-53":"-11",
];
};
}
pub(crate) use impl_niche;
42 changes: 7 additions & 35 deletions src/num/int/wrapper/impl_base.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ use crate::{

// $t: the integer primitive input/output type, and the niche inner type
// $d: the doclink suffix for the method name
macro_rules! impl_base {
(prim_signed $( $t:ty : $d:literal ),+) => { $( impl_base![@prim_signed $t:$d]; )+ };
(prim_unsigned $( $t:ty : $d:literal ),+) => { $( impl_base![@prim_unsigned $t:$d]; )+ };
macro_rules! impl_int {
(prim_signed $( $t:ty : $d:literal ),+) => { $( impl_int![@prim_signed $t:$d]; )+ };
(prim_unsigned $( $t:ty : $d:literal ),+) => { $( impl_int![@prim_unsigned $t:$d]; )+ };

// implements ops on signed primitives
(@prim_signed $t:ty : $d:literal) => { paste! {
Expand Down Expand Up @@ -260,7 +260,7 @@ macro_rules! impl_base {
// $d: the doclink suffix for the method name
// $dt: the doclink suffix for the associated method name implemented for the inner primitive
(niche $( $n:ident : $t:ident <$($g:ident),*> : $d:literal : $dt: literal),+ $(,)? ) => {
$( impl_base![@niche $n:$t <$($g),*> : $d:$dt ]; )+
$( impl_int![@niche $n:$t <$($g),*> : $d:$dt ]; )+
};
(@niche $n:ident : $t:ident <$($g:ident),*> : $d:literal : $dt: literal) => { paste! {
#[doc = "# Integer base related methods for `" [<$n$t:camel>] "`\n\n"]
Expand All @@ -282,35 +282,7 @@ macro_rules! impl_base {
}
}};
}
impl_base![prim_signed i8:"", i16:"-1", i32:"-2", i64:"-3", i128:"-4", isize:"-5"];
impl_base![prim_unsigned u8:"-6", u16:"-7", u32:"-8", u64:"-9", u128:"-10", usize:"-11"];
impl_int![prim_signed i8:"", i16:"-1", i32:"-2", i64:"-3", i128:"-4", isize:"-5"];
impl_int![prim_unsigned u8:"-6", u16:"-7", u32:"-8", u64:"-9", u128:"-10", usize:"-11"];
#[cfg(feature = "num_int_niche")]
impl_base![niche
NonZero:i8<>:"-18":"", NonZero:i16<>:"-19":"-1",
NonZero:i32<>:"-20":"-2", NonZero:i64<>:"-21":"-3",
NonZero:i128<>:"-22":"-4", NonZero:isize<>:"-23":"-5",
NonZero:u8<>:"-12":"-6", NonZero:u16<>:"-13":"-7",
NonZero:u32<>:"-14":"-8", NonZero:u64<>:"-15":"-9",
NonZero:u128<>:"-16":"-10", NonZero:usize<>:"-17":"-11",
//
NonSpecific:i8<V>:"-30":"", NonSpecific:i16<V>:"-31":"-1",
NonSpecific:i32<V>:"-32":"-2", NonSpecific:i64<V>:"-33":"-3",
NonSpecific:i128<V>:"-34":"-4", NonSpecific:isize<V>:"-35":"-5",
NonSpecific:u8<V>:"-24":"-6", NonSpecific:u16<V>:"-25":"-7",
NonSpecific:u32<V>:"-26":"-8", NonSpecific:u64<V>:"-27":"-9",
NonSpecific:u128<V>:"-28":"-10", NonSpecific:usize<V>:"-29":"-11",
//
NonRange:i8<RMIN,RMAX>:"-42":"", NonRange:i16<RMIN,RMAX>:"-43":"-1",
NonRange:i32<RMIN,RMAX>:"-44":"-2", NonRange:i64<RMIN,RMAX>:"-45":"-3",
NonRange:i128<RMIN,RMAX>:"-46":"-4", NonRange:isize<RMIN,RMAX>:"-47":"-5",
NonRange:u8<RMIN,RMAX>:"-36":"-6", NonRange:u16<RMIN,RMAX>:"-37":"-7",
NonRange:u32<RMIN,RMAX>:"-38":"-8", NonRange:u64<RMIN,RMAX>:"-39":"-9",
NonRange:u128<RMIN,RMAX>:"-40":"-10", NonRange:usize<RMIN,RMAX>:"-41":"11",
//
Range:i8<RMIN,RMAX>:"-54":"", Range:i16<RMIN,RMAX>:"-55":"-1",
Range:i32<RMIN,RMAX>:"-56":"-2", Range:i64<RMIN,RMAX>:"-57":"-3",
Range:i128<RMIN,RMAX>:"-58":"-4", Range:isize<RMIN,RMAX>:"-59":"-5",
Range:u8<RMIN,RMAX>:"-48":"-6", Range:u16<RMIN,RMAX>:"-49":"-7",
Range:u32<RMIN,RMAX>:"-50":"-8", Range:u64<RMIN,RMAX>:"-51":"-9",
Range:u128<RMIN,RMAX>:"-52":"-10", Range:usize<RMIN,RMAX>:"-53":"-11",
];
impl_niche![impl_int];
42 changes: 7 additions & 35 deletions src/num/int/wrapper/impl_combinatorics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ use NumErrors::{MismatchedSizes, NonNegativeRequired, Overflow};

// $t: the input/output type
// $d: the doclink suffix for the method name
macro_rules! impl_combinatorics {
(signed $( $t:ty : $d:literal ),+) => { $( impl_combinatorics![@signed $t:$d]; )+ };
(unsigned $( $t:ty : $d:literal ),+) => { $( impl_combinatorics![@unsigned $t:$d]; )+ };
macro_rules! impl_int {
(signed $( $t:ty : $d:literal ),+) => { $( impl_int![@signed $t:$d]; )+ };
(unsigned $( $t:ty : $d:literal ),+) => { $( impl_int![@unsigned $t:$d]; )+ };

// implements signed ops
(@signed $t:ty : $d:literal) => { paste! {
Expand Down Expand Up @@ -561,7 +561,7 @@ macro_rules! impl_combinatorics {
// $d: the doclink suffix for the method name
// $dt: the doclink suffix for the associated method name implemented for the inner primitive
(niche $( $n:ident : $t:ident <$($g:ident),*> : $d:literal : $dt: literal),+ $(,)? ) => {
$( impl_combinatorics![@niche $n:$t <$($g),*> : $d:$dt ]; )+
$( impl_int![@niche $n:$t <$($g),*> : $d:$dt ]; )+
};
(@niche $n:ident : $t:ident <$($g:ident),*> : $d:literal : $dt: literal) => { paste! {
#[doc = "# Integer combinatorics related methods for `" $t "`\n\n"]
Expand All @@ -583,35 +583,7 @@ macro_rules! impl_combinatorics {
}
}};
}
impl_combinatorics![signed i8:"", i16:"-1", i32:"-2", i64:"-3", i128:"-4", isize:"-5"];
impl_combinatorics![unsigned u8:"-6", u16:"-7", u32:"-8", u64:"-9", u128:"-10", usize:"-11"];
impl_int![signed i8:"", i16:"-1", i32:"-2", i64:"-3", i128:"-4", isize:"-5"];
impl_int![unsigned u8:"-6", u16:"-7", u32:"-8", u64:"-9", u128:"-10", usize:"-11"];
#[cfg(feature = "num_int_niche")]
impl_combinatorics![niche
NonZero:i8<>:"-18":"", NonZero:i16<>:"-19":"-1",
NonZero:i32<>:"-20":"-2", NonZero:i64<>:"-21":"-3",
NonZero:i128<>:"-22":"-4", NonZero:isize<>:"-23":"-5",
NonZero:u8<>:"-12":"-6", NonZero:u16<>:"-13":"-7",
NonZero:u32<>:"-14":"-8", NonZero:u64<>:"-15":"-9",
NonZero:u128<>:"-16":"-10", NonZero:usize<>:"-17":"-11",
//
NonSpecific:i8<V>:"-30":"", NonSpecific:i16<V>:"-31":"-1",
NonSpecific:i32<V>:"-32":"-2", NonSpecific:i64<V>:"-33":"-3",
NonSpecific:i128<V>:"-34":"-4", NonSpecific:isize<V>:"-35":"-5",
NonSpecific:u8<V>:"-24":"-6", NonSpecific:u16<V>:"-25":"-7",
NonSpecific:u32<V>:"-26":"-8", NonSpecific:u64<V>:"-27":"-9",
NonSpecific:u128<V>:"-28":"-10", NonSpecific:usize<V>:"-29":"-11",
//
NonRange:i8<RMIN,RMAX>:"-42":"", NonRange:i16<RMIN,RMAX>:"-43":"-1",
NonRange:i32<RMIN,RMAX>:"-44":"-2", NonRange:i64<RMIN,RMAX>:"-45":"-3",
NonRange:i128<RMIN,RMAX>:"-46":"-4", NonRange:isize<RMIN,RMAX>:"-47":"-5",
NonRange:u8<RMIN,RMAX>:"-36":"-6", NonRange:u16<RMIN,RMAX>:"-37":"-7",
NonRange:u32<RMIN,RMAX>:"-38":"-8", NonRange:u64<RMIN,RMAX>:"-39":"-9",
NonRange:u128<RMIN,RMAX>:"-40":"-10", NonRange:usize<RMIN,RMAX>:"-41":"11",
//
Range:i8<RMIN,RMAX>:"-54":"", Range:i16<RMIN,RMAX>:"-55":"-1",
Range:i32<RMIN,RMAX>:"-56":"-2", Range:i64<RMIN,RMAX>:"-57":"-3",
Range:i128<RMIN,RMAX>:"-58":"-4", Range:isize<RMIN,RMAX>:"-59":"-5",
Range:u8<RMIN,RMAX>:"-48":"-6", Range:u16<RMIN,RMAX>:"-49":"-7",
Range:u32<RMIN,RMAX>:"-50":"-8", Range:u64<RMIN,RMAX>:"-51":"-9",
Range:u128<RMIN,RMAX>:"-52":"-10", Range:usize<RMIN,RMAX>:"-53":"-11",
];
impl_niche![impl_int];
42 changes: 7 additions & 35 deletions src/num/int/wrapper/impl_core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ use {
// $t: the input/output type
// $up: the upcasted type to do the operations on (for lcm)
// $d: the doclink suffix for the method name
macro_rules! impl_core {
(signed $( $t:ty : $up:ty : $d:literal ),+) => { $( impl_core![@signed $t:$up:$d]; )+ };
(unsigned $( $t:ty : $up:ty : $d:literal ),+) => { $( impl_core![@unsigned $t:$up:$d]; )+ };
macro_rules! impl_int {
(signed $( $t:ty : $up:ty : $d:literal ),+) => { $( impl_int![@signed $t:$up:$d]; )+ };
(unsigned $( $t:ty : $up:ty : $d:literal ),+) => { $( impl_int![@unsigned $t:$up:$d]; )+ };

// implements signed ops
(@signed $t:ty : $up:ty : $d:literal) => { paste! {
Expand Down Expand Up @@ -440,7 +440,7 @@ macro_rules! impl_core {
// $d: the doclink suffix for the method name
// $dt: the doclink suffix for the associated method name implemented for the inner primitive
(niche $( $n:ident : $t:ident <$($g:ident),*> : $d:literal : $dt: literal),+ $(,)? ) => {
$( impl_core![@niche $n:$t <$($g),*> : $d:$dt ]; )+
$( impl_int![@niche $n:$t <$($g),*> : $d:$dt ]; )+
};
(@niche $n:ident : $t:ident <$($g:ident),*> : $d:literal : $dt: literal) => { paste! {
#[doc = "# Integer core methods for `" $t "`\n\n"]
Expand Down Expand Up @@ -470,37 +470,9 @@ macro_rules! impl_core {
}
}};
}
impl_core![signed
impl_int![signed
i8:i16:"", i16:i32:"-1", i32:i64:"-2", i64:i128:"-3", i128:i128:"-4", isize:isize_up:"-5"];
impl_core![unsigned
impl_int![unsigned
u8:u16:"-6", u16:u32:"-7", u32:u64:"-8", u64:u128:"-9", u128:u128:"-10", usize:usize_up:"-11"];
#[cfg(feature = "num_int_niche")]
impl_core![niche
NonZero:i8<>:"-18":"", NonZero:i16<>:"-19":"-1",
NonZero:i32<>:"-20":"-2", NonZero:i64<>:"-21":"-3",
NonZero:i128<>:"-22":"-4", NonZero:isize<>:"-23":"-5",
NonZero:u8<>:"-12":"-6", NonZero:u16<>:"-13":"-7",
NonZero:u32<>:"-14":"-8", NonZero:u64<>:"-15":"-9",
NonZero:u128<>:"-16":"-10", NonZero:usize<>:"-17":"-11",
//
NonSpecific:i8<V>:"-30":"", NonSpecific:i16<V>:"-31":"-1",
NonSpecific:i32<V>:"-32":"-2", NonSpecific:i64<V>:"-33":"-3",
NonSpecific:i128<V>:"-34":"-4", NonSpecific:isize<V>:"-35":"-5",
NonSpecific:u8<V>:"-24":"-6", NonSpecific:u16<V>:"-25":"-7",
NonSpecific:u32<V>:"-26":"-8", NonSpecific:u64<V>:"-27":"-9",
NonSpecific:u128<V>:"-28":"-10", NonSpecific:usize<V>:"-29":"-11",
//
NonRange:i8<RMIN,RMAX>:"-42":"", NonRange:i16<RMIN,RMAX>:"-43":"-1",
NonRange:i32<RMIN,RMAX>:"-44":"-2", NonRange:i64<RMIN,RMAX>:"-45":"-3",
NonRange:i128<RMIN,RMAX>:"-46":"-4", NonRange:isize<RMIN,RMAX>:"-47":"-5",
NonRange:u8<RMIN,RMAX>:"-36":"-6", NonRange:u16<RMIN,RMAX>:"-37":"-7",
NonRange:u32<RMIN,RMAX>:"-38":"-8", NonRange:u64<RMIN,RMAX>:"-39":"-9",
NonRange:u128<RMIN,RMAX>:"-40":"-10", NonRange:usize<RMIN,RMAX>:"-41":"11",
//
Range:i8<RMIN,RMAX>:"-54":"", Range:i16<RMIN,RMAX>:"-55":"-1",
Range:i32<RMIN,RMAX>:"-56":"-2", Range:i64<RMIN,RMAX>:"-57":"-3",
Range:i128<RMIN,RMAX>:"-58":"-4", Range:isize<RMIN,RMAX>:"-59":"-5",
Range:u8<RMIN,RMAX>:"-48":"-6", Range:u16<RMIN,RMAX>:"-49":"-7",
Range:u32<RMIN,RMAX>:"-50":"-8", Range:u64<RMIN,RMAX>:"-51":"-9",
Range:u128<RMIN,RMAX>:"-52":"-10", Range:usize<RMIN,RMAX>:"-53":"-11",
];
impl_niche![impl_int];
42 changes: 7 additions & 35 deletions src/num/int/wrapper/impl_div.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ use crate::{

// $t: the input/output type
// $d: the doclink suffix for the method name
macro_rules! impl_div {
(signed $( $t:ty : $d:literal ),+) => { $( impl_div![@signed $t:$d]; )+ };
(unsigned $( $t:ty : $d:literal ),+) => { $( impl_div![@unsigned $t:$d]; )+ };
macro_rules! impl_int {
(signed $( $t:ty : $d:literal ),+) => { $( impl_int![@signed $t:$d]; )+ };
(unsigned $( $t:ty : $d:literal ),+) => { $( impl_int![@unsigned $t:$d]; )+ };

// implements signed ops
(@signed $t:ty : $d:literal) => { paste! {
Expand Down Expand Up @@ -375,7 +375,7 @@ macro_rules! impl_div {
// $d: the doclink suffix for the method name
// $dt: the doclink suffix for the associated method name implemented for the inner primitive
(niche $( $n:ident : $t:ident <$($g:ident),*> : $d:literal : $dt: literal),+ $(,)? ) => {
$( impl_div![@niche $n:$t <$($g),*> : $d:$dt ]; )+
$( impl_int![@niche $n:$t <$($g),*> : $d:$dt ]; )+
};
(@niche $n:ident : $t:ident <$($g:ident),*> : $d:literal : $dt: literal) => { paste! {
#[doc = "# Integer division related methods for `" $t "`\n\n"]
Expand All @@ -399,35 +399,7 @@ macro_rules! impl_div {
}
}};
}
impl_div![signed i8:"", i16:"-1", i32:"-2", i64:"-3", i128:"-4", isize:"-5"];
impl_div![unsigned u8:"-6", u16:"-7", u32:"-8", u64:"-9", u128:"-10", usize:"-11"];
impl_int![signed i8:"", i16:"-1", i32:"-2", i64:"-3", i128:"-4", isize:"-5"];
impl_int![unsigned u8:"-6", u16:"-7", u32:"-8", u64:"-9", u128:"-10", usize:"-11"];
#[cfg(feature = "num_int_niche")]
impl_div![niche
NonZero:i8<>:"-18":"", NonZero:i16<>:"-19":"-1",
NonZero:i32<>:"-20":"-2", NonZero:i64<>:"-21":"-3",
NonZero:i128<>:"-22":"-4", NonZero:isize<>:"-23":"-5",
NonZero:u8<>:"-12":"-6", NonZero:u16<>:"-13":"-7",
NonZero:u32<>:"-14":"-8", NonZero:u64<>:"-15":"-9",
NonZero:u128<>:"-16":"-10", NonZero:usize<>:"-17":"-11",
//
NonSpecific:i8<V>:"-30":"", NonSpecific:i16<V>:"-31":"-1",
NonSpecific:i32<V>:"-32":"-2", NonSpecific:i64<V>:"-33":"-3",
NonSpecific:i128<V>:"-34":"-4", NonSpecific:isize<V>:"-35":"-5",
NonSpecific:u8<V>:"-24":"-6", NonSpecific:u16<V>:"-25":"-7",
NonSpecific:u32<V>:"-26":"-8", NonSpecific:u64<V>:"-27":"-9",
NonSpecific:u128<V>:"-28":"-10", NonSpecific:usize<V>:"-29":"-11",
//
NonRange:i8<RMIN,RMAX>:"-42":"", NonRange:i16<RMIN,RMAX>:"-43":"-1",
NonRange:i32<RMIN,RMAX>:"-44":"-2", NonRange:i64<RMIN,RMAX>:"-45":"-3",
NonRange:i128<RMIN,RMAX>:"-46":"-4", NonRange:isize<RMIN,RMAX>:"-47":"-5",
NonRange:u8<RMIN,RMAX>:"-36":"-6", NonRange:u16<RMIN,RMAX>:"-37":"-7",
NonRange:u32<RMIN,RMAX>:"-38":"-8", NonRange:u64<RMIN,RMAX>:"-39":"-9",
NonRange:u128<RMIN,RMAX>:"-40":"-10", NonRange:usize<RMIN,RMAX>:"-41":"11",
//
Range:i8<RMIN,RMAX>:"-54":"", Range:i16<RMIN,RMAX>:"-55":"-1",
Range:i32<RMIN,RMAX>:"-56":"-2", Range:i64<RMIN,RMAX>:"-57":"-3",
Range:i128<RMIN,RMAX>:"-58":"-4", Range:isize<RMIN,RMAX>:"-59":"-5",
Range:u8<RMIN,RMAX>:"-48":"-6", Range:u16<RMIN,RMAX>:"-49":"-7",
Range:u32<RMIN,RMAX>:"-50":"-8", Range:u64<RMIN,RMAX>:"-51":"-9",
Range:u128<RMIN,RMAX>:"-52":"-10", Range:usize<RMIN,RMAX>:"-53":"-11",
];
impl_niche![impl_int];
10 changes: 5 additions & 5 deletions src/num/int/wrapper/impl_factors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ use {

// $t: the input/output type
// $d: the doclink suffix for the method name
macro_rules! impl_factors {
(signed $( $t:ty : $d:literal ),+) => { $( impl_factors![@signed $t:$d]; )+ };
(unsigned $( $t:ty : $d:literal ),+) => { $( impl_factors![@unsigned $t:$d]; )+ };
macro_rules! impl_int {
(signed $( $t:ty : $d:literal ),+) => { $( impl_int![@signed $t:$d]; )+ };
(unsigned $( $t:ty : $d:literal ),+) => { $( impl_int![@unsigned $t:$d]; )+ };

// implements signed ops
(@signed $t:ty : $d:literal) => { paste! {
Expand Down Expand Up @@ -710,5 +710,5 @@ macro_rules! impl_factors {
}
}};
}
impl_factors![signed i8:"", i16:"-1", i32:"-2", i64:"-3", i128:"-4", isize:"-5"];
impl_factors![unsigned u8:"-6", u16:"-7", u32:"-8", u64:"-9", u128:"-10", usize:"-11"];
impl_int![signed i8:"", i16:"-1", i32:"-2", i64:"-3", i128:"-4", isize:"-5"];
impl_int![unsigned u8:"-6", u16:"-7", u32:"-8", u64:"-9", u128:"-10", usize:"-11"];
10 changes: 5 additions & 5 deletions src/num/int/wrapper/impl_prime.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ use NumErrors::Overflow;
// $t: the input/output type
// $up: the upcasted type to do the operations on (for prime_pi)
// $d: the doclink suffix for the method name
macro_rules! impl_base {
(signed $( $t:ty : $up:ty : $d:literal ),+) => { $( impl_base![@signed $t:$up:$d]; )+ };
(unsigned $( $t:ty : $up:ty : $d:literal ),+) => { $( impl_base![@unsigned $t:$up:$d]; )+ };
macro_rules! impl_int {
(signed $( $t:ty : $up:ty : $d:literal ),+) => { $( impl_int![@signed $t:$up:$d]; )+ };
(unsigned $( $t:ty : $up:ty : $d:literal ),+) => { $( impl_int![@unsigned $t:$up:$d]; )+ };

// implements signed ops
(@signed $t:ty : $up: ty : $d:literal) => { paste! {
Expand Down Expand Up @@ -282,7 +282,7 @@ macro_rules! impl_base {
}
}};
}
impl_base![signed
impl_int![signed
i8:i16:"", i16:i32:"-1", i32:i64:"-2", i64:i128:"-3", i128:i128:"-4", isize:isize_up:"-5"];
impl_base![unsigned
impl_int![unsigned
u8:u16:"-6", u16:u32:"-7", u32:u64:"-8", u64:u128:"-9", u128:u128:"-10", usize:usize_up:"-11"];

0 comments on commit f63e817

Please sign in to comment.