use crate::AppError;
use crate::core::bootables::DisplayOptions;
use crate::core::display::GopDisplay;
use crate::path::DiskManager;
use uefi::proto::console::text::Input;
#[must_use]
pub enum AppResult {
Done,
Booted,
Yield,
Error(AppError),
}
pub struct AppCtx<'a> {
pub display: &'a mut GopDisplay<'a>,
pub input: &'a mut Input,
pub disk_manager: &'a DiskManager,
pub handle: uefi::Handle,
}
pub trait App {
fn run(&mut self, ctx: &mut AppCtx) -> AppResult;
}
pub trait DisplayEntry {
fn display_options(&self) -> DisplayOptions;
}