From 167028a530fdc8e9e9c7a023385452bcc6cc1950 Mon Sep 17 00:00:00 2001 From: Yuriy Dupyn <2153100+omedusyo@users.noreply.github.com> Date: Mon, 5 Feb 2024 17:11:53 +0100 Subject: [PATCH] Error formatting --- minisql/src/error.rs | 2 ++ storage_engine/src/error.rs | 20 ++++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/minisql/src/error.rs b/minisql/src/error.rs index d74af4e..a38446e 100644 --- a/minisql/src/error.rs +++ b/minisql/src/error.rs @@ -13,6 +13,8 @@ pub enum RuntimeError { AttemptToIndexNonIndexableColumn(TableName, ColumnName), #[error("table {0} already indexes column {1}")] AttemptToIndexAlreadyIndexedColumn(TableName, ColumnName), + #[error("Storage Engine error for table {0}: {1}")] + StorageEngineError(TableName, storage_engine::error::Error) } #[derive(Debug, Error)] diff --git a/storage_engine/src/error.rs b/storage_engine/src/error.rs index 7b21fdb..1ca849c 100644 --- a/storage_engine/src/error.rs +++ b/storage_engine/src/error.rs @@ -1,25 +1,41 @@ use crate::store::Column; +use thiserror::Error; -#[derive(Debug)] +#[derive(Debug, Error)] pub enum Error { + #[error("Decoding Error: {0} {1}")] DecodeError(DecodeErrorKind, bincode::error::DecodeError), + #[error("Encoding Error: {0}")] EncodeError(bincode::error::EncodeError), + #[error("Attempt to index non-indexed column {0}")] AttemptToIndexNonIndexableColumn(Column), + #[error("Index Corruption: Index is storing eof file position for column {0}")] IndexIsStoringEofFilePosition(Column), + #[error("Column {0} is already indexed")] ColumnAlreadyIndexed(Column), + #[error("File-System Error: {0}")] IoError(std::io::Error), } -#[derive(Debug)] +#[derive(Debug, Error)] pub enum DecodeErrorKind { + #[error("StoreHeaderNumberOfColumns")] StoreHeaderNumberOfColumns, + #[error("StoreHeaderDeletedCount")] StoreHeaderDeletedCount, + #[error("StoreHeaderTotalCount")] StoreHeaderTotalCount, + #[error("StoreHeaderPrimaryColumn")] StoreHeaderPrimaryColumn, + #[error("StoreHeaderIndexedColumns")] StoreHeaderIndexedColumns, + #[error("EntryData")] EntryData, + #[error("EntryIsDeleted")] EntryIsDeleted, + #[error("EntryHeaderWithDataSizes")] EntryHeaderWithDataSizes, + #[error("CorruptedData")] CorruptedData, }