diff --git a/src/calc.rs b/src/calc.rs index 4906d89..95bbe6d 100644 --- a/src/calc.rs +++ b/src/calc.rs @@ -262,28 +262,46 @@ impl Calculator { 'r' => self.angle_mode = CalculatorAngleMode::Radians, 'g' => self.angle_mode = CalculatorAngleMode::Grads, '_' => self.display_mode = CalculatorDisplayMode::Default, - ',' => self.display_mode = CalculatorDisplayMode::Separated{separator: ','}, - ' ' => self.display_mode = CalculatorDisplayMode::Separated{separator: ' '}, - 's' => self.display_mode = CalculatorDisplayMode::Scientific{precision: DEFAULT_PRECISION}, + ',' => self.display_mode = CalculatorDisplayMode::Separated { separator: ',' }, + ' ' => self.display_mode = CalculatorDisplayMode::Separated { separator: ' ' }, + 's' => { + self.display_mode = CalculatorDisplayMode::Scientific { + precision: DEFAULT_PRECISION, + } + } 'S' => { let precision = self.checked_get(0)? as usize; if precision > MAX_PRECISION { return Err(CalculatorError::PrecisionTooHigh); } - self.display_mode = CalculatorDisplayMode::Scientific{precision: self.pop_usize()?} + self.display_mode = CalculatorDisplayMode::Scientific { + precision: self.pop_usize()?, + } } 'e' => { - self.display_mode = CalculatorDisplayMode::Engineering{precision: DEFAULT_PRECISION} + self.display_mode = CalculatorDisplayMode::Engineering { + precision: DEFAULT_PRECISION, + } } 'E' => { let precision = self.checked_get(0)? as usize; if precision > MAX_PRECISION { return Err(CalculatorError::PrecisionTooHigh); } - self.display_mode = CalculatorDisplayMode::Engineering{precision: self.pop_usize()?} + self.display_mode = CalculatorDisplayMode::Engineering { + precision: self.pop_usize()?, + } + } + 'f' => { + self.display_mode = CalculatorDisplayMode::Fixed { + precision: DEFAULT_PRECISION, + } + } + 'F' => { + self.display_mode = CalculatorDisplayMode::Fixed { + precision: self.pop_usize()?, + } } - 'f' => self.display_mode = CalculatorDisplayMode::Fixed{precision: DEFAULT_PRECISION}, - 'F' => self.display_mode = CalculatorDisplayMode::Fixed{precision: self.pop_usize()?}, _ => return Err(CalculatorError::NoSuchSetting(c)), }; self.state = CalculatorState::Normal; diff --git a/src/calc/constants.rs b/src/calc/constants.rs index 40da934..34fd732 100644 --- a/src/calc/constants.rs +++ b/src/calc/constants.rs @@ -76,7 +76,7 @@ impl fmt::Display for CalculatorAngleMode { // Could also have added content="precision" pub enum CalculatorDisplayMode { Default, - Separated { separator: char }, + Separated { separator: char }, Scientific { precision: usize }, Engineering { precision: usize }, Fixed { precision: usize }, @@ -86,10 +86,10 @@ impl fmt::Display for CalculatorDisplayMode { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match self { CalculatorDisplayMode::Default => write!(f, "DEF"), - CalculatorDisplayMode::Separated{separator} => write!(f, "SEP({})", separator), - CalculatorDisplayMode::Scientific{precision} => write!(f, "SCI({})", precision), - CalculatorDisplayMode::Engineering{precision} => write!(f, "ENG({})", precision), - CalculatorDisplayMode::Fixed{precision} => write!(f, "FIX({})", precision), + CalculatorDisplayMode::Separated { separator } => write!(f, "SEP({})", separator), + CalculatorDisplayMode::Scientific { precision } => write!(f, "SCI({})", precision), + CalculatorDisplayMode::Engineering { precision } => write!(f, "ENG({})", precision), + CalculatorDisplayMode::Fixed { precision } => write!(f, "FIX({})", precision), } } } diff --git a/src/calc/errors.rs b/src/calc/errors.rs index 9c52c05..37f29d2 100644 --- a/src/calc/errors.rs +++ b/src/calc/errors.rs @@ -39,10 +39,14 @@ impl fmt::Display for CalculatorError { CalculatorError::ParseError => write!(f, "Parse error"), CalculatorError::PrecisionTooHigh => write!(f, "Precision too high"), CalculatorError::SaveError(None) => write!(f, "Could not save"), - CalculatorError::SaveError(Some(ConfyError::SerializeTomlError(e))) => write!(f, "Save serialization error: {}", e), + CalculatorError::SaveError(Some(ConfyError::SerializeTomlError(e))) => { + write!(f, "Save serialization error: {}", e) + } CalculatorError::SaveError(Some(e)) => write!(f, "Could not save: {}", e), CalculatorError::LoadError(None) => write!(f, "Could not load"), - CalculatorError::LoadError(Some(ConfyError::SerializeTomlError(e))) => write!(f, "Load serialization error: {}", e), + CalculatorError::LoadError(Some(ConfyError::SerializeTomlError(e))) => { + write!(f, "Load serialization error: {}", e) + } CalculatorError::LoadError(Some(e)) => write!(f, "Could not load: {}", e), } } diff --git a/src/main.rs b/src/main.rs index 4b8cd94..ad5dfdf 100644 --- a/src/main.rs +++ b/src/main.rs @@ -119,16 +119,16 @@ fn main() -> Result<(), Box> { let content = vec![Spans::from(Span::raw( match app.calculator.get_display_mode() { CalculatorDisplayMode::Default => format!("{:>2}: {}", i, *m), - CalculatorDisplayMode::Separated{separator} => { + CalculatorDisplayMode::Separated { separator } => { format!("{:>2}: {}", i, fmt_separated(*m, *separator)) } - CalculatorDisplayMode::Scientific{precision} => { + CalculatorDisplayMode::Scientific { precision } => { format!("{:>2}: {}", i, fmt_scientific(*m, *precision)) } - CalculatorDisplayMode::Engineering{precision} => { + CalculatorDisplayMode::Engineering { precision } => { format!("{:>2}: {}", i, fmt_engineering(*m, *precision)) } - CalculatorDisplayMode::Fixed{precision} => { + CalculatorDisplayMode::Fixed { precision } => { format!("{:>2}: {:.precision$}", i, m, precision = precision) } },