From 44cc35ce4968334b734abda18ea9b3c710688df4 Mon Sep 17 00:00:00 2001 From: laentropia Date: Mon, 27 Apr 2026 17:04:41 -0600 Subject: [PATCH] addition: Fraction pending implementations --- src/lib.rs | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 101 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index d5c0a18..7a44ec0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,5 @@ +use std::{fmt, ops}; + pub struct Fraction { num: i64, den: i64, @@ -10,7 +12,7 @@ pub enum FractionError { Overflow, } -impl std::fmt::Display for FractionError { +impl fmt::Display for FractionError { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { FractionError::DivisionByZero => write!(f, "Division by zero"), @@ -30,6 +32,104 @@ impl Fraction { Ok(Fraction { num, den }) } + + pub fn reciprocal(&self) -> Result { + todo!() + } + + pub fn abs(&self) -> Self { + todo!() + } + + pub fn is_zero(&self) -> bool { + todo!() + } + + pub fn is_integer(&self) -> bool { + todo!() + } + + fn gcd(a: i64, b: i64) -> i64 { + todo!(); + } + + fn reduce(&mut self) { + todo!(); + } +} + +impl ops::Mul for Fraction { + type Output = Self; + + fn mul(self, rhs: Self) -> Self::Output { + todo!() + } +} + +impl ops::Add for Fraction { + type Output = Self; + + fn add(self, rhs: Self) -> Self::Output { + todo!() + } +} + +impl ops::Div for Fraction { + type Output = Result; + + fn div(self, rhs: Self) -> Self::Output { + todo!() + } +} + +impl ops::Sub for Fraction { + type Output = Self; + + fn sub(self, rhs: Self) -> Self::Output { + todo!() + } +} + +impl ops::Neg for Fraction { + type Output = Self; + + fn neg(self) -> Self::Output { + todo!() + } +} + +impl fmt::Display for Fraction { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + todo!() + } +} + +impl From for Fraction { + fn from(value: i32) -> Self { + todo!() + } +} + +impl From for Fraction { + fn from(value: i64) -> Self { + todo!() + } +} + +impl TryFrom<(i32, i32)> for Fraction { + type Error = FractionError; + + fn try_from(value: (i32, i32)) -> Result { + todo!() + } +} + +impl TryFrom<(i64, i64)> for Fraction { + type Error = FractionError; + + fn try_from(value: (i64, i64)) -> Result { + todo!() + } } #[cfg(test)]