use thiserror::Error;
#[derive(Error, Debug)]
pub enum BootError {
#[error("UEFI Error: {0}")]
Uefi(#[from] uefi::Error),
#[error("String Conversion Error: {0}")]
StrError(#[from] crate::system::helper::StrError),
#[error("Filesystem Error: {0}")]
FsError(#[from] crate::system::fs::FsError),
#[error("Secure Boot Error: {0}")]
SecureBootError(#[from] crate::boot::secure_boot::SecureBootError),
#[error("DevicePath Error: {0}")]
DevicePathError(#[from] crate::system::helper::DevicePathError),
#[error("Load Image Error: {0}")]
LoadError(#[from] crate::boot::loader::LoadError),
#[error("Load Driver Error: {0}")]
DriverError(#[from] crate::system::drivers::DriverError),
#[error("Devicetree Error: {0}")]
DevicetreeError(#[from] crate::boot::devicetree::DevicetreeError),
#[error("UEFI Variable Error: {0}")]
VarError(#[from] crate::system::variable::VarError),
#[cfg(feature = "uki")]
#[error("Uki Parse Error: {0}")]
UkiError(#[from] crate::config::parsers::uki::UkiError),
#[cfg(feature = "windows_bcd")]
#[error("Win Parse Error: {0}")]
WinError(#[from] crate::config::parsers::windows::windows_bcd::WinError),
}