Expand description
§fomod-oxide
Parse and evaluate FOMOD mod installer configurations.
FOMOD is an XML-based format used by mod managers (Mod Organizer 2, Vortex, etc.) to define guided installation wizards for game mods.
§Quick start
use fomod_oxide::{ModuleConfig, Installer};
let xml = std::fs::read_to_string("fomod/ModuleConfig.xml").unwrap();
let config = ModuleConfig::parse(&xml).unwrap();
let mut installer = Installer::new(config);
// Present visible steps to the user, collect selections...
for (idx, step) in installer.visible_steps() {
println!("Step {idx}: {}", step.name);
}
// Record selections and resolve the install plan
installer.select(0, 0, vec![0]);
let plan = installer.resolve();
for op in &plan.operations {
println!("{} -> {}", op.source, op.destination);
}Re-exports§
pub use condition::EvalContext;pub use condition::Evaluate;pub use condition::FileState;pub use config::ModuleConfig;pub use declarative::hash_xml;pub use declarative::DeclarativeConfig;pub use declarative::DeclarativeError;pub use declarative::SelectionDiff;pub use declarative::SelectionSummary;pub use declarative::SCHEMA_VERSION;pub use error::FomodError;pub use info::FomodInfo;pub use installer::CompletionStatus;pub use installer::FileConflict;pub use installer::FileConflictSource;pub use installer::FileOperation;pub use installer::FlagImpact;pub use installer::InstallPlan;pub use installer::Installer;pub use installer::SelectionError;pub use installer::ValidationHint;