use std::{fmt::Display, io};
use crate::EncryptionError;
#[derive(Debug, Clone)]
pub enum BlockWriteError {
ExceededFileSize,
EncryptionError(EncryptionError),
IoError(String),
}
impl Display for BlockWriteError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
BlockWriteError::ExceededFileSize => write!(f, "Exceeded file size"),
BlockWriteError::EncryptionError(encryption_error) => {
write!(f, "{}", encryption_error)
}
BlockWriteError::IoError(error) => write!(f, "{}", error),
}
}
}
impl From<io::Error> for BlockWriteError {
fn from(value: io::Error) -> Self {
BlockWriteError::IoError(value.to_string())
}
}
impl From<EncryptionError> for BlockWriteError {
fn from(value: EncryptionError) -> Self {
BlockWriteError::EncryptionError(value)
}
}