pub fn gcd<T>(num1: T, num2: T) -> Twhere T: Copy + PartialEq + PartialOrd + ShrAssign + ShlAssign + SubAssign + TryFrom<usize> + TryInto<usize>, <T as TryFrom<usize>>::Error: Debug, <T as TryInto<usize>>::Error: Debug,
use gcd_bitwise::interface::gcd; fn main() { let num1: u8 = 15; let num2: u8 = 51; let gcd = gcd(num1, num2); println!("gcd: {}", gcd); // 3 }