pgcd_generic_rust