Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.44 KB | None | 0 0
  1. use num::{One, Zero};
  2. use std::ops::Add;
  3.  
  4. pub fn multiply<T>(a: &T, b: &T) -> T
  5. where
  6. T: Zero + One + PartialOrd + for<'a> Add<&'a T, Output = T>,
  7. {
  8. let mut total = T::zero();
  9. let mut count = T::zero();
  10. while count < *a {
  11. total = total + b;
  12. count = count + &T::one();
  13. }
  14. total
  15. }
  16.  
  17. #[cfg(test)]
  18. mod tests {
  19. use super::multiply;
  20.  
  21. #[test]
  22. fn zero() {
  23. assert_eq!(multiply(&0, &3), 0);
  24. }
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement