pub struct LaunchContext<'a> { /* private fields */ }Expand description
Information about the game and profile directories used when launching a loader.
A LaunchContext holds the paths to the profile directory (where mod files
are staged) and the game directory (where the game executable lives),
together with a flag indicating whether the game runs under Proton.
§Examples
use loadsmith_loader::LaunchContext;
use camino::Utf8Path;
let ctx = LaunchContext::new(
Utf8Path::new("/tmp/profile"),
Utf8Path::new("/tmp/game"),
false,
);
assert_eq!(ctx.profile_path(), Utf8Path::new("/tmp/profile"));
assert_eq!(ctx.game_path(), Utf8Path::new("/tmp/game"));
assert!(!ctx.is_proton());Implementations§
Source§impl<'a> LaunchContext<'a>
impl<'a> LaunchContext<'a>
Sourcepub fn new(
profile_path: impl Into<Cow<'a, Utf8Path>>,
game_path: impl Into<Cow<'a, Utf8Path>>,
is_proton: bool,
) -> Self
pub fn new( profile_path: impl Into<Cow<'a, Utf8Path>>, game_path: impl Into<Cow<'a, Utf8Path>>, is_proton: bool, ) -> Self
Creates a new launch context.
profile_path- directory where mod and loader files are staged.game_path- directory containing the game executable.is_proton- whether the game runs via Proton (used for path translation).
Sourcepub fn profile_path(&self) -> &Utf8Path
pub fn profile_path(&self) -> &Utf8Path
Returns the profile directory path.
Sourcepub fn format_proton_path(&self, path: impl Into<Utf8PathBuf>) -> Utf8PathBuf
pub fn format_proton_path(&self, path: impl Into<Utf8PathBuf>) -> Utf8PathBuf
Formats a path for use with Proton, prepending Z: when
is_proton is true.
Sourcepub fn copy_file_to_game(
&self,
relative_source: impl AsRef<Path>,
relative_target: impl AsRef<Path>,
) -> Result<()>
pub fn copy_file_to_game( &self, relative_source: impl AsRef<Path>, relative_target: impl AsRef<Path>, ) -> Result<()>
Copies a single file from the profile to the game directory.
Skips the copy when the destination already exists and has the same content (determined by hash).
Sourcepub fn copy_glob_to_game(&self, patterns: &GlobSet) -> Result<()>
pub fn copy_glob_to_game(&self, patterns: &GlobSet) -> Result<()>
Copies all files in the profile matching a glob set to the game directory, preserving relative paths.
Trait Implementations§
Source§impl<'a> Clone for LaunchContext<'a>
impl<'a> Clone for LaunchContext<'a>
Source§fn clone(&self) -> LaunchContext<'a>
fn clone(&self) -> LaunchContext<'a>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<'a> Freeze for LaunchContext<'a>
impl<'a> RefUnwindSafe for LaunchContext<'a>
impl<'a> Send for LaunchContext<'a>
impl<'a> Sync for LaunchContext<'a>
impl<'a> Unpin for LaunchContext<'a>
impl<'a> UnsafeUnpin for LaunchContext<'a>
impl<'a> UnwindSafe for LaunchContext<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more