From 026dad0773a895551eca699bbcf583535b99b233 Mon Sep 17 00:00:00 2001 From: Gwilym Kuiper Date: Sun, 6 Jun 2021 00:07:33 +0100 Subject: [PATCH] Change base can change between convertable integer types too --- agb/src/number.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/agb/src/number.rs b/agb/src/number.rs index 8be2b96..5f30e59 100644 --- a/agb/src/number.rs +++ b/agb/src/number.rs @@ -75,13 +75,18 @@ pub struct Num(I); pub type Number = Num; -pub fn change_base( - num: Num, +pub fn change_base< + I: FixedWidthUnsignedInteger, + J: FixedWidthUnsignedInteger + Into, + const N: usize, + const M: usize, +>( + num: Num, ) -> Num { if N < M { - Num(num.0 << (M - N)) + Num(num.0.into() << (M - N)) } else { - Num(num.0 >> (N - M)) + Num(num.0.into() >> (N - M)) } }