diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2023-02-01 18:30:34 -0330 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2023-02-01 18:30:34 -0330 |
| commit | dfbaad1f881be6ca3e93e09da360652ba5023b7d (patch) | |
| tree | 6de916622e8a55e6ab3985d4799bf4a0d28cdac2 | |
| parent | c791d7ae1809a56f2ddb804f454789061ed9b497 (diff) | |
| download | pfc-dfbaad1f881be6ca3e93e09da360652ba5023b7d.zip | |
push_buffer_to_stack() function
| -rw-r--r-- | src/main.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs index fc657a8..89c47aa 100644 --- a/src/main.rs +++ b/src/main.rs @@ -43,15 +43,13 @@ impl Calculator { self.input_buffer.push(c); } else if let Ok(op) = Operator::parse(c) { if self.input_buffer.len() > 0 { - self.stack.push(self.input_buffer.parse::<f64>().unwrap()); - self.input_buffer = String::new(); + self.push_buffer_to_stack(); } self.perform_operation(op); } } KeyCode::Enter if self.input_buffer.len() > 0 => { - self.stack.push(self.input_buffer.parse::<f64>().unwrap()); - self.input_buffer = String::new(); + self.push_buffer_to_stack(); } KeyCode::Backspace => { self.input_buffer.pop(); @@ -105,6 +103,11 @@ impl Calculator { Operator::Div => self.stack.push(lhs / rhs), } } + + fn push_buffer_to_stack(&mut self) { + self.stack.push(self.input_buffer.parse::<f64>().unwrap()); + self.input_buffer = String::new(); + } } fn main() -> io::Result<()> { |