#ifndef RECOMPUI_MOD_INSTALLER_H #define RECOMPUI_MOD_INSTALLER_H #include #include #include #include #include namespace recompui { struct ModInstaller { struct Installation { std::string mod_id; std::string display_name; recomp::Version mod_version; std::filesystem::path mod_file; std::list additional_files; bool needs_overwrite_confirmation = false; }; struct Confirmation { std::string old_display_name; std::string new_display_name; std::string old_mod_id; std::string new_mod_id; recomp::Version old_version; recomp::Version new_version; }; struct Result { std::list error_messages; std::list pending_installations; }; static void start_mod_installation(const std::list &file_paths, std::function progress_callback, Result &result); static void cancel_mod_installation(const Result& result, std::vector& errors); static void finish_mod_installation(const Result &result, std::vector& errors); }; }; #endif