use tui_pane::SettingsPane;
use super::overlays::FinderPane;
use super::panes::CpuPane;
use super::panes::GitPane;
use super::panes::LangPane;
use super::panes::OutputPane;
use super::panes::PackagePane;
use super::panes::ProjectListPane;
use super::panes::TargetsPane;
use super::project_list::ProjectList;
use super::render_context::PaneRenderCtx;
use super::running_targets::RunningTargets;
use super::settings::SettingsRenderInputs;
use super::state::Ci;
use super::state::Config;
use super::state::Inflight;
use super::state::Lint;
use super::state::Scan;
pub(super) struct RenderBorrows<'a> {
pub(super) registry: RenderRegistry<'a>,
pub(super) pane_render_ctx: PaneRenderCtx<'a>,
}
#[derive(Clone, Copy)]
pub(super) struct OverlayRenderInputs<'a> {
pub(super) settings: Option<&'a SettingsRenderInputs>,
}
impl<'a> OverlayRenderInputs<'a> {
pub const fn none() -> Self { Self { settings: None } }
pub const fn settings(inputs: &'a SettingsRenderInputs) -> Self {
Self {
settings: Some(inputs),
}
}
}
pub(super) struct RenderRegistry<'a> {
pub(super) package: &'a mut PackagePane,
pub(super) lang: &'a mut LangPane,
pub(super) cpu: &'a mut CpuPane,
pub(super) git: &'a mut GitPane,
pub(super) targets: &'a mut TargetsPane,
pub(super) project_list: &'a mut ProjectListPane,
pub(super) output: &'a mut OutputPane,
pub(super) lint: &'a mut Lint,
pub(super) ci: &'a mut Ci,
pub(super) settings_pane: &'a mut SettingsPane,
}
pub(super) struct FinderSplit<'a> {
pub(super) finder_pane: &'a mut FinderPane,
pub(super) config: &'a Config,
pub(super) project_list: &'a ProjectList,
pub(super) inflight: &'a Inflight,
pub(super) scan: &'a Scan,
pub(super) running_targets: &'a RunningTargets,
}