В стандартной библиотеке нет таких черт.
Однако возможно иметь обобщенную концепцию c min и max для произвольных типов без внешних зависимостей, если вы хотите создать соответствующие черты и реализуйте их для интересующих вас типов, например:
use core::fmt::Display;
trait Min {
fn min() -> Self;
}
trait Max {
fn max() -> Self;
}
impl Min for u8 {
fn min() -> u8 {
std::u8::MIN
}
}
impl Max for u8 {
fn max() -> u8 {
std::u8::MAX
}
}
impl Min for i32 {
fn min() -> i32 {
std::i32::MIN
}
}
impl Max for i32 {
fn max() -> i32 {
std::i32::MAX
}
}
fn print_min_max<T: Min + Max + Display>() {
println!("{} -> {}", T::min(), T::max());
}
fn main() {
let m: i32 = Min::min();
println!("{}", m);
print_min_max::<u8>();
print_min_max::<i32>();
}
Это печатает:
-2147483648
0 -> 255
-2147483648 -> 2147483647
Детская площадка