diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2023-02-02 13:19:21 -0330 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2023-02-02 13:19:21 -0330 |
| commit | 9a501d0fe195634830dda87760ea0f38201a4ec2 (patch) | |
| tree | a9f1358e9b3ab84e43c8348b4ccdf9bfcba7e730 | |
| parent | 4a07f41766e8cc8966d7166daa5e1f90c582b1fb (diff) | |
| download | pfc-9a501d0fe195634830dda87760ea0f38201a4ec2.zip | |
check buffer not empty within push_buffer_to_stack()
| -rw-r--r-- | src/input.rs | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/input.rs b/src/input.rs index ecb4b3f..01d0b11 100644 --- a/src/input.rs +++ b/src/input.rs @@ -21,7 +21,7 @@ impl Calculator { KeyCode::Char(c) => { self.push_to_buffer(c); } - KeyCode::Enter if self.input_buffer.len() > 0 => { + KeyCode::Enter => { self.push_buffer_to_stack(); } KeyCode::Backspace => { @@ -43,23 +43,21 @@ impl Calculator { } self.input_buffer.push(c); } else if let Ok(op) = Operator::parse(c) { - if self.input_buffer.len() > 0 { - self.push_buffer_to_stack(); - } + self.push_buffer_to_stack(); self.perform_operation(op); } } fn push_buffer_to_stack(&mut self) { - self.stack.push(self.input_buffer.parse::<f64>().unwrap()); - self.input_buffer = String::new(); + if self.input_buffer.len() > 0 { + self.stack.push(self.input_buffer.parse::<f64>().unwrap()); + self.input_buffer = String::new(); + } } fn swap(&mut self) { if let Some(f) = self.stack.pop() { - if self.input_buffer.len() > 0 { - self.push_buffer_to_stack(); - } + self.push_buffer_to_stack(); self.input_buffer = format!("{}", f); } } |