#[doc(inline)]
pub use libflorescence::diff::{
contents_to_lines, id_hash, id_parts_hash, id_ref_hash, Combined,
DecodedFile, DiffWithContents, DiffWithoutContents, File, FileContent, Id,
IdHash, IdRef, Lines, Section, UndecodableContents, UndecodableFile,
};
use inflorescence_iced_widget::nav_scrollable;
use libflorescence::file;
#[derive(Debug, Default)]
pub struct State {
pub selected_sections: Vec<usize>,
pub expanded_unchanged_sections: Vec<usize>,
pub collapsed_changed_sections: Vec<usize>,
}
#[derive(Debug, Default)]
pub struct FilesState {
pub diffs: file::IdMap<State>,
pub diffs_nav: nav_scrollable::State,
#[cfg(debug_assertions)]
pub file_id: Option<file::IdHash>,
}
pub fn init_diffs_nav(
navs: &mut FilesState,
#[cfg(debug_assertions)] file_id: file::IdHash,
) -> &mut nav_scrollable::State {
navs.diffs_nav = nav_scrollable::State::default();
#[cfg(debug_assertions)]
{
navs.file_id = Some(file_id);
}
&mut navs.diffs_nav
}
#[derive(Debug)]
pub struct FileAndState {
pub file: File,
pub state: State,
}