Files
upo-rust/src/es04_rational_traits.rs
Berack96 01c9a72de0 Es 04 Rationals
- added the + and * traits
2024-04-30 19:10:34 +02:00

48 lines
1.1 KiB
Rust

#![allow(dead_code)]
use std::ops::Add;
use std::ops::Mul;
use super::es02_rational::Rational;
/** Es.4
* Per la struttura dei numeri razionali implementare i traits Add e Mul sia per fare
* somma e moltiplicazione di numeri razionali che per fare somma e moltiplicazione di un numero razionale e un intero (i32).
* Aggiungere ai test che avete fatto altri test per queste implementazioni.
*/
impl Mul for Rational {
type Output = Self;
fn mul(self, rhs: Self) -> Self::Output {
let mut temp = rhs.clone();
temp.multiplication(&self);
temp
}
}
impl Mul<i32> for Rational {
type Output = Self;
fn mul(self, rhs: i32) -> Self::Output {
let mut temp = Rational::from(rhs);
temp.multiplication(&self);
temp
}
}
impl Add for Rational {
type Output = Self;
fn add(self, rhs: Self) -> Self::Output {
let mut temp = rhs.clone();
temp.addition(&self);
temp
}
}
impl Add<i32> for Rational {
type Output = Self;
fn add(self, rhs: i32) -> Self::Output {
let mut temp = Rational::from(rhs);
temp.addition(&self);
temp
}
}