Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use num::{One, Zero};
- use std::ops::Add;
- pub fn multiply<T>(a: &T, b: &T) -> T
- where
- T: Zero + One + PartialOrd + for<'a> Add<&'a T, Output = T>,
- {
- let mut total = T::zero();
- let mut count = T::zero();
- while count < *a {
- total = total + b;
- count = count + &T::one();
- }
- total
- }
- #[cfg(test)]
- mod tests {
- use super::multiply;
- #[test]
- fn zero() {
- assert_eq!(multiply(&0, &3), 0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement