use thiserror::Error;
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Error, Debug)]
pub enum Error {
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("Parse float error: {0}")]
ParseFloatError(#[from] std::num::ParseFloatError),
#[error("Invalid segment: expected {expected}, received {received}")]
InvalidSegment{ expected: String, received: String },
#[error("Unexpected error: {0}")]
UnexpectedError(String),
}