use thiserror::Error;
#[derive(Error, Debug)]
pub enum CoreError {
#[error("ファイルI/Oエラー: {0}")]
IoError(#[from] std::io::Error),
#[error("バッファ範囲外アクセス: index={index}, buffer_len={buffer_len}")]
OutOfBounds { index: usize, buffer_len: usize },
#[error("Undo/Redo操作が不可能: {0}")]
HistoryError(String),
#[error("UTF-8変換エラー: {0}")]
Utf8Error(#[from] std::string::FromUtf8Error),
}
pub type CoreResult<T> = Result<T, CoreError>;