aboutsummaryrefslogtreecommitdiffstats
path: root/src/function.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/function.rs')
-rw-r--r--src/function.rs61
1 files changed, 0 insertions, 61 deletions
diff --git a/src/function.rs b/src/function.rs
deleted file mode 100644
index bb6462d..0000000
--- a/src/function.rs
+++ /dev/null
@@ -1,61 +0,0 @@
-use crate::AngleMode;
-
-pub enum Function {
- Sin, // Sine
- Cos, // Cosine
- Tan, // Tangent
- Asin, // Inverse sine
- Acos, // Inverse cosine
- Atan, // Inverse tangent
- Deg, // Convert from radians to degrees
- Rad, // Convert from degrees to radians
-}
-
-impl Function {
- pub fn parse(s: &str) -> Result<Self, ParseFunctionError> {
- match s {
- "sin" => Ok(Self::Sin),
- "cos" => Ok(Self::Cos),
- "tan" => Ok(Self::Tan),
- "asin" => Ok(Self::Asin),
- "acos" => Ok(Self::Acos),
- "atan" => Ok(Self::Atan),
- "deg" => Ok(Self::Deg),
- "rad" => Ok(Self::Rad),
- _ => Err(ParseFunctionError(s.to_string())),
- }
- }
-
- pub fn call(&self, val: f64, angle_mode: AngleMode) -> f64 {
- match self {
- Self::Sin => match angle_mode {
- AngleMode::Degrees => val.to_radians().sin(),
- AngleMode::Radians => val.sin(),
- },
- Self::Cos => match angle_mode {
- AngleMode::Degrees => val.to_radians().cos(),
- AngleMode::Radians => val.cos(),
- },
- Self::Tan => match angle_mode {
- AngleMode::Degrees => val.to_radians().tan(),
- AngleMode::Radians => val.tan(),
- },
- Self::Asin => match angle_mode {
- AngleMode::Degrees => val.asin().to_degrees(),
- AngleMode::Radians => val.asin(),
- },
- Self::Acos => match angle_mode {
- AngleMode::Degrees => val.acos().to_degrees(),
- AngleMode::Radians => val.acos(),
- },
- Self::Atan => match angle_mode {
- AngleMode::Degrees => val.atan().to_degrees(),
- AngleMode::Radians => val.atan(),
- },
- Self::Deg => val.to_degrees(),
- Self::Rad => val.to_radians(),
- }
- }
-}
-
-pub struct ParseFunctionError(String);