pub trait Integer {
fn min(self, other: Self) -> Self;
fn max(self, other: Self) -> Self;
}
pub trait Signed {
fn abs(self) -> Self;
}
pub trait Float {
fn floor(self) -> Self;
fn round(self) -> Self;
fn ceil(self) -> Self;
fn trunc(self) -> Self;
}
pub trait Pow2 {
type Output;
fn pow2(self) -> Self::Output;
}
pub trait Pow3 {
type Output;
fn pow3(self) -> Self::Output;
}
pub trait Root2 {
type Output;
fn sqrt(self) -> Self::Output;
}
pub trait Root3 {
type Output;
fn cbrt(self) -> Self::Output;
}