use thiserror::Error;
pub type Result<T> = core::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] core::num::ParseFloatError),
#[error("Parse int error: {0}")]
ParseIntError(#[from] core::num::ParseIntError),
#[error("Invalid character: {0}")]
InvalidCharacter(char),
#[error("Unexpected end of input")]
UnexpectedEnd,
#[error("Unclosed comment")]
UnclosedComment,
#[error("UTF-8 error: {0}")]
Utf8Error(#[from] std::str::Utf8Error),
}