use thiserror::Error;
#[derive(Debug, Error)]
pub enum ConversionError {
#[error("Missing required field: {0}")]
MissingField(String),
#[error("Invalid format: {0}")]
InvalidFormat(String),
#[error("Serialization error: {0}")]
SerializationError(String),
}
pub trait ToInternal<T> {
fn to_internal(self) -> T;
}
pub trait FromInternal<T> {
fn from_internal(internal: T) -> Self;
}
pub trait TryToInternal<T> {
fn try_to_internal(self) -> Result<T, ConversionError>;
}
pub trait TryFromInternal<T>: Sized {
fn try_from_internal(internal: T) -> Result<Self, ConversionError>;
}