From faedfadeabc3688eb787b412401b446ccab06f36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kha=C3=AFs=20COLIN?= Date: Sat, 10 May 2025 10:41:30 +0200 Subject: [PATCH] refactor(error_report): remove dead code --- notes.org | 2 ++ src/command.rs | 28 ++-------------------------- src/error_display.rs | 17 +++-------------- src/meta_commands.rs | 15 --------------- src/statements.rs | 15 --------------- 5 files changed, 7 insertions(+), 70 deletions(-) diff --git a/notes.org b/notes.org index bb87926..9e6c400 100644 --- a/notes.org +++ b/notes.org @@ -210,6 +210,8 @@ i will use rustyline, since it seems like the most feature-complete * DONE show marking where error occurs +* DONE remove uneeded error variants + * TODO cli tests using insta-cmd https://insta.rs/docs/cmd/ diff --git a/src/command.rs b/src/command.rs index 156b15b..c325db6 100644 --- a/src/command.rs +++ b/src/command.rs @@ -1,5 +1,5 @@ -use crate::meta_commands::{MetaCommand, MetaCommandExecuteResult, MetaCommandParseError}; -use crate::statements::{Statement, StatementExecuteResult, StatementParseError}; +use crate::meta_commands::{MetaCommand, MetaCommandExecuteResult}; +use crate::statements::{Statement, StatementExecuteResult}; use crate::tokens::ScanError; #[derive(Debug)] @@ -49,45 +49,21 @@ impl Command { #[derive(Debug)] pub enum CommandParseError { - MetaCommand(MetaCommandParseError), - Statement(StatementParseError), Scan(ScanError), } -impl CommandParseError { - pub(crate) fn message(&self) -> String { - match self { - CommandParseError::MetaCommand(x) => format!("{x}"), - CommandParseError::Statement(x) => format!("{x}"), - CommandParseError::Scan(x) => format!("{x}"), - } - } -} - impl From for Command { fn from(value: MetaCommand) -> Self { Command::MetaCommand(value) } } -impl From for CommandParseError { - fn from(value: MetaCommandParseError) -> Self { - CommandParseError::MetaCommand(value) - } -} - impl From for Command { fn from(value: Statement) -> Self { Command::Statement(value) } } -impl From for CommandParseError { - fn from(value: StatementParseError) -> Self { - CommandParseError::Statement(value) - } -} - impl From for CommandParseError { fn from(value: ScanError) -> Self { CommandParseError::Scan(value) diff --git a/src/error_display.rs b/src/error_display.rs index 9feab85..fcb6468 100644 --- a/src/error_display.rs +++ b/src/error_display.rs @@ -7,20 +7,8 @@ pub trait OSDBError { impl OSDBError for CommandParseError { fn display(&self, file: &str, input: &str) { - if let CommandParseError::Scan(x) = self { - x.display(file, input); - } else { - Report::build(ReportKind::Error, (file, 0..input.len() - 1)) - .with_message(self.message()) - .with_label( - Label::new((file, 0..input.len() - 1)) - .with_color(Color::Red) - .with_message(self.message()), - ) - .finish() - .print((file, Source::from(input))) - .unwrap(); - } + let CommandParseError::Scan(x) = self; + x.display(file, input); } } @@ -34,6 +22,7 @@ impl OSDBError for ScanError { .with_color(Color::Red) .with_message(format!("{self}")), ) + .with_help("Make sure you don't have any typos or unexpected characters.") .finish() .print((file, Source::from(input))) .unwrap(); diff --git a/src/meta_commands.rs b/src/meta_commands.rs index 4c7b0f8..898776c 100644 --- a/src/meta_commands.rs +++ b/src/meta_commands.rs @@ -14,18 +14,3 @@ impl MetaCommand { } } } - -#[derive(Debug)] -pub enum MetaCommandParseError { - Unrecognized { cmd: String }, -} - -impl std::fmt::Display for MetaCommandParseError { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - MetaCommandParseError::Unrecognized { cmd } => { - write!(f, "unrecognized meta-command {cmd:?}") - } - } - } -} diff --git a/src/statements.rs b/src/statements.rs index 238c02a..5ba1103 100644 --- a/src/statements.rs +++ b/src/statements.rs @@ -4,21 +4,6 @@ pub enum Statement { Select, } -#[derive(Debug)] -pub enum StatementParseError { - Unrecognized { stmt: String }, -} - -impl std::fmt::Display for StatementParseError { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - StatementParseError::Unrecognized { stmt } => { - write!(f, "unrecognized statement {stmt:?}") - } - } - } -} - pub struct StatementExecuteResult { pub msg: String, }