use thiserror::Error;
pub type Result<T> = std::result::Result<T, OtomlError>;
#[derive(Error, Debug)]
pub enum OtomlError {
#[error("TOML parse error: {0}")]
ParseError(#[from] toml::de::Error),
#[error("TOML serialization error: {0}")]
SerializeError(#[from] toml::ser::Error),
#[error("Invalid datetime format: expected 'YYYY-MM-DD HH:MM:SS', got '{0}'")]
InvalidDatetime(String),
#[error("Invalid time: {0}")]
InvalidTime(String),
#[error("Invalid currency: {0}")]
InvalidCurrency(String),
#[error("Invalid location: {0}")]
InvalidLocation(String),
#[error("Invalid address: {0}")]
InvalidAddress(String),
#[error("Binary serialization error: {0}")]
BinarySerialize(String),
#[error("Binary deserialization error: {0}")]
BinaryDeserialize(String),
#[error("Invalid OTOML format: {0}")]
InvalidFormat(String),
#[error("JSON serialization error: {0}")]
JsonSerialize(String),
#[error("JSON deserialization error: {0}")]
JsonDeserialize(String),
}