## Scalar ### Instructions Create the following **functions**, which each receives two parameters: - `sum`, which returns the sum between two values from 0 to 255 - `diff`, which returns the difference between two values from -32768 to 32767 - `pro`, which returns the product of the multiplication between two values from -128 to 127 - `quo`, which returns the quotient of the division between two values (32bit and you have to figure out the second part) - `rem`, which returns the remainder of the division between two values (32bit and you have to figure out the second part) You **must** complete the Expected functions parameters data type accordingly (Replace the Xs)! ### Notions - https://doc.rust-lang.org/book/ch03-02-data-types.html ### Expected functions (Incomplete, you must precise the Data Types) ```rust pub fn sum(a: X , b: X) -> X { } pub fn diff(a: X, b: X) -> X { } pub fn pro(a: X, b: X) -> X { } pub fn quo(a: X, b: X) -> X { } pub fn rem(a: X, b: X) -> X { } ``` ### Usage (do not forget to comment the ERROR test if you want to use all the tests): ```rust use scalar::sum; use scalar::diff; use scalar::pro; use scalar::quo; use scalar::rem; fn main() { // sum println!("sum : {}", sum(234, 2)); println!("sum : {}", sum(1, 255)); // 'ERROR: attempt to add with overflow' // diff println!("diff : {}", diff(234, 2)); println!("diff : {}", diff(-32768, 32766)); // 'ERROR: attempt to subtract with overflow' // product println!("pro : {}", pro(23, 2)); println!("pro : {}", pro(-128, 2)); // 'ERROR: attempt to multiply with overflow' // quotient println!("quo : {}", quo(22.0, 2.0)); println!("quo : {}", quo(-128.23, 2.0)); // remainder println!("rem : {}", rem(22.0, 2.0)); println!("rem : {}", rem(-128.23, 2.0)); } ```