start 04 traits, completed upto 10

This commit is contained in:
2025-03-01 15:00:03 +05:30
parent 3e6fc66515
commit 10fea65893
11 changed files with 73 additions and 18 deletions

View File

@@ -13,6 +13,28 @@
// You don't have to though: it's perfectly okay to write three separate
// implementations manually. Venture further only if you're curious.
pub trait Power<T> {
fn power(&self, power: T) -> Self;
}
impl Power<u16> for u32 {
fn power(&self, power: u16) -> Self {
self.pow(power as u32)
}
}
impl Power<u32> for u32 {
fn power(&self, power: u32) -> Self {
self.pow(power)
}
}
impl Power<&u32> for u32 {
fn power(&self, power: &u32) -> Self {
self.pow(power.clone())
}
}
#[cfg(test)]
mod tests {
use super::Power;