csv_lib/models/
csv_error.rs1use std::fmt::{Display, Formatter};
2use std::io;
3use std::io::Error;
4
5#[derive(Debug)]
6#[derive(Clone)]
7#[allow(dead_code)]
8pub enum CsvError {
11 IO(String),
12 Parse(i32,i32,String),
13 Decode(String),
14 FileError(String),
15 Unknow
16
17}
18
19impl Display for CsvError {
22 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
23 match self {
24 CsvError::IO(e) => {
25 write!(f, "IO Error: {}", e)
26 }
27 CsvError::Parse(row,col , v) => {
28 write!(f, "Row {}, Column {}: Extracted value {}, failed", row, col, v)
29 }
30 CsvError::FileError(e) => {
31 write!(f, "File Error: {}", e)
32 }
33 CsvError::Decode(e) => {
34 write!(f, "Error decoding: {}", e)
35 }
36 CsvError::Unknow => {
37 write!(f, "Unknown error")
38 }
39 }
40 }
41}
42
43impl std::error::Error for CsvError {}
45
46impl From<io::Error> for CsvError {
49 fn from(value: Error) -> Self {
50 CsvError::IO(value.to_string())
51 }
52}