macro_rules! test_value_generator { (u8) => { test_value_generator!(u, u8) }; (u16) => { test_value_generator!(u, u16) }; (u32) => { test_value_generator!(u, u32) }; (u64) => { test_value_generator!(u, u64) }; (u128) => { test_value_generator!(u, u128) }; (usize) => { test_value_generator!(u, usize) }; (u, $primitive: ty) => { [0, 1, 2, <$primitive>::MAX - 1, <$primitive>::MAX,] }; (i8) => { test_value_generator!(i, i8) }; (i16) => { test_value_generator!(i, i16) }; (i32) => { test_value_generator!(i, i32) }; (i64) => { test_value_generator!(i, i64) }; (i128) => { test_value_generator!(i, i128) }; (isize) => { test_value_generator!(i, isize) }; (i, $primitive: ty) => { [0, 1, 2, -1, -2, <$primitive>::MIN, <$primitive>::MIN + 1, <$primitive>::MAX - 1, <$primitive>::MAX,] }; (f32) => { test_value_generator!(f, f32) }; (f64) => { test_value_generator!(f, f64) }; (f, $primitive: ty) => { [0.0, 1.0, 2.0, -1.0, -2.0, <$primitive>::MIN, <$primitive>::MIN + 1.0, <$primitive>::MAX - 1.0, <$primitive>::MAX,] }; }