The AppConfig struct holds the persistent settings for the objdiff GUI. It includes paths for the project, target, and base object directories, build settings, and file watching patterns.
Key fields include:
project_dir: The root directory of the current project.target_obj_dir: The directory containing the 'target' object files.base_obj_dir: The directory containing the 'base' object files.watch_patterns: A list of Glob patterns used to trigger rebuilds on file changes.ignore_patterns: A list of Glob patterns to exclude from watching.rebuild_on_changes: A boolean that, when true, automatically re-runs the build and diff when watched files are modified.
#[derive(Clone, serde::Deserialize, serde::Serialize)]
pub struct AppConfig {
pub version: u32,
pub custom_make: Option<String>,
pub custom_args: Option<Vec<String>>,
pub selected_wsl_distro: Option<String>,
pub project_dir: Option<Utf8PlatformPathBuf>,
pub target_obj_dir: Option<Utf8PlatformPathBuf>,
pub base_obj_dir: Option<Utf8PlatformPathBuf>,
pub selected_obj: Option<ObjectConfig>,
pub build_base: bool,
pub build_target: bool,
pub rebuild_on_changes: bool,
pub auto_update_check: bool,
pub watch_patterns: Vec<Glob>,
pub ignore_patterns: Vec<Glob>,
pub recent_projects: Vec<String>,
pub diff_obj_config: DiffObjConfig,
}