Skip to main content

Crate fomod_oxide

Crate fomod_oxide 

Source
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;

Modules§

condition
config
declarative
error
info
installer