1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
pub trait PowOps { type Output; fn pow(&self, n: usize) -> Self::Output; fn powf(&self, f: f64) -> Self::Output; } pub trait TrigOps { type Output; fn sin(&self) -> Self::Output; fn cos(&self) -> Self::Output; fn tan(&self) -> Self::Output; } pub trait ExpLogOps { type Output; fn exp(&self) -> Self::Output; fn ln(&self) -> Self::Output; }