aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib.rs
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2023-02-01 13:33:35 -0330
committerSam Anthony <sam@samanthony.xyz>2023-02-01 13:33:35 -0330
commit7587f9798bfd4c2d4cf17e673643727caa329548 (patch)
tree951281ad01d108433dc93e9845efc9f19b598507 /src/lib.rs
parentebf889219bbba702df0e7756c78268eb5437c30a (diff)
downloadpfc-7587f9798bfd4c2d4cf17e673643727caa329548.zip
input handling
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 527ddb8..e08796d 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,13 +1,22 @@
pub mod ui;
-enum Token {
- Operand(f64),
- Operator(Operator),
-}
-
-enum Operator {
+pub enum Operator {
Add,
Sub,
Mul,
Div,
}
+
+impl Operator {
+ pub fn parse(c: char) -> Result<Self, ParseOperatorError> {
+ match c {
+ '+' => Ok(Self::Add),
+ '-' => Ok(Self::Sub),
+ '*' => Ok(Self::Mul),
+ '/' => Ok(Self::Div),
+ _ => Err(ParseOperatorError(c)),
+ }
+ }
+}
+
+pub struct ParseOperatorError(char);