use crate::app::SnapMemo;
use crate::git_tree::AgentState;
use crate::inspector::Ephemera;
use crate::steps_view::{StepTab, StepsView};
use crate::transcript::Transcript;
use std::path::PathBuf;
use std::sync::Arc;
pub struct InspectorState {
pub raw: bool,
pub step_sel: Option<usize>,
pub step_tab: StepTab,
pub eph: Ephemera,
pub(crate) steps_memo: SnapMemo<(PathBuf, String, AgentState), StepsView>,
pub(crate) tx_memo: SnapMemo<(PathBuf, String), Arc<Transcript>>,
pub(crate) rail_memo: SnapMemo<(PathBuf, String), crate::rail::Rail>,
pub(crate) files_memo:
SnapMemo<(PathBuf, String, Option<String>), crate::files_view::FilesView>,
pub(crate) work_memo: SnapMemo<PathBuf, Vec<crate::workdiff::Attempt>>,
pub(crate) work_patch_memo:
SnapMemo<(PathBuf, Option<crate::workdiff::WorkFile>), Option<crate::files_view::Preview>>,
pub(crate) fork: Option<crate::fork::composer::Composer>,
pub(crate) fork_memo: SnapMemo<(PathBuf, String), crate::fork::Choices>,
}
impl Default for InspectorState {
fn default() -> Self {
Self {
raw: false,
step_sel: None,
step_tab: StepTab::Meta,
eph: Ephemera::default(),
steps_memo: SnapMemo::default(),
tx_memo: SnapMemo::default(),
rail_memo: SnapMemo::default(),
files_memo: SnapMemo::default(),
work_memo: SnapMemo::default(),
work_patch_memo: SnapMemo::default(),
fork: None,
fork_memo: SnapMemo::default(),
}
}
}