Skip to content

Commit 15b8079

Browse files
cargo fmt
1 parent ab2402c commit 15b8079

File tree

12 files changed

+140
-101
lines changed

12 files changed

+140
-101
lines changed

src/error.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,13 @@ pub enum Error {
7474
)]
7575
InstallerNotExecutable,
7676

77-
#[error("
77+
#[error(
78+
"
7879
The installer '{package_id}' does not support the current tcli installer protocol.
7980
Expected: {our_version:#?}
8081
Recieved: {given_version:#?}
81-
")]
82+
"
83+
)]
8284
InstallerBadVersion {
8385
package_id: String,
8486
given_version: Version,
@@ -94,7 +96,9 @@ pub enum Error {
9496
#[error("The installer returned an error:\n\t{message}")]
9597
InstallerError { message: String },
9698

97-
#[error("The provided game id '{0}' does not exist or has not been imported into this profile.")]
99+
#[error(
100+
"The provided game id '{0}' does not exist or has not been imported into this profile."
101+
)]
98102
BadGameId(String),
99103

100104
#[error("The Steam app with id '{0}' could not be found.")]

src/game/import/ea.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
use std::path::PathBuf;
22

3+
use super::{Error, GameImporter};
34
use crate::game::import::ImportBase;
45
use crate::game::registry::{ActiveDistribution, GameData};
56
use crate::ts::v1::models::ecosystem::GameDefPlatform;
67
use crate::util::reg::{self, HKey};
78

8-
use super::{Error, GameImporter};
9-
10-
pub struct EaImporter {
9+
pub struct EaImporter {
1110
ident: String,
1211
}
1312

@@ -25,20 +24,22 @@ impl GameImporter for EaImporter {
2524
let value = reg::get_value_at(HKey::LocalMachine, &subkey, "Install Dir")?;
2625

2726
let game_dir = PathBuf::from(value);
28-
let r2mm = base
29-
.game_def
30-
.r2modman
31-
.as_ref()
32-
.expect("Expected a valid r2mm field in the ecosystem schema, got nothing. This is a bug.");
27+
let r2mm = base.game_def.r2modman.as_ref().expect(
28+
"Expected a valid r2mm field in the ecosystem schema, got nothing. This is a bug.",
29+
);
3330

3431
let exe_path = base
3532
.overrides
3633
.custom_exe
3734
.clone()
3835
.or_else(|| super::find_game_exe(&r2mm.exe_names, &game_dir))
39-
.ok_or_else(|| super::Error::ExeNotFound(base.game_def.label.clone(), game_dir.clone()))?;
36+
.ok_or_else(|| {
37+
super::Error::ExeNotFound(base.game_def.label.clone(), game_dir.clone())
38+
})?;
4039
let dist = ActiveDistribution {
41-
dist: GameDefPlatform::Origin { identifier: self.ident.to_string() },
40+
dist: GameDefPlatform::Origin {
41+
identifier: self.ident.to_string(),
42+
},
4243
game_dir: game_dir.to_path_buf(),
4344
data_dir: game_dir.join(&r2mm.data_folder_name),
4445
exe_path,

src/game/import/egs.rs

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
use std::fs;
22
use std::path::PathBuf;
3+
34
use serde::{Deserialize, Serialize};
45

6+
use super::{Error, GameImporter, ImportBase};
57
use crate::game::registry::{ActiveDistribution, GameData};
68
use crate::ts::v1::models::ecosystem::GameDefPlatform;
79
use crate::util::reg::{self, HKey};
810

9-
use super::{Error, GameImporter, ImportBase};
10-
1111
#[derive(Serialize, Deserialize, Debug)]
1212
#[serde(rename_all = "PascalCase")]
1313
struct PartialInstallManifest {
1414
install_location: PathBuf,
1515
app_name: String,
1616
}
1717

18-
pub struct EgsImporter {
18+
pub struct EgsImporter {
1919
ident: String,
2020
}
2121

@@ -55,29 +55,33 @@ impl GameImporter for EgsImporter {
5555
.collect::<Vec<_>>();
5656

5757
// Search for the manifest which contains the correct game AppName.
58-
let game_dir = manifest_files.into_iter().find_map(|x| {
59-
let file_contents = fs::read_to_string(x).unwrap();
60-
let manifest: PartialInstallManifest = serde_json::from_str(&file_contents).unwrap();
58+
let game_dir = manifest_files
59+
.into_iter()
60+
.find_map(|x| {
61+
let file_contents = fs::read_to_string(x).unwrap();
62+
let manifest: PartialInstallManifest =
63+
serde_json::from_str(&file_contents).unwrap();
6164

62-
if manifest.app_name == self.ident {
63-
Some(manifest.install_location)
64-
} else {
65-
None
66-
}
67-
}).ok_or_else(|| super::Error::NotFound(game_label.clone(), "EGS".to_string()))?;
65+
if manifest.app_name == self.ident {
66+
Some(manifest.install_location)
67+
} else {
68+
None
69+
}
70+
})
71+
.ok_or_else(|| super::Error::NotFound(game_label.clone(), "EGS".to_string()))?;
6872

69-
let r2mm = base
70-
.game_def
71-
.r2modman
72-
.as_ref()
73-
.expect("Expected a valid r2mm field in the ecosystem schema, got nothing. This is a bug.");
73+
let r2mm = base.game_def.r2modman.as_ref().expect(
74+
"Expected a valid r2mm field in the ecosystem schema, got nothing. This is a bug.",
75+
);
7476

7577
let exe_path = base
7678
.overrides
7779
.custom_exe
7880
.clone()
7981
.or_else(|| super::find_game_exe(&r2mm.exe_names, &game_dir))
80-
.ok_or_else(|| super::Error::ExeNotFound(base.game_def.label.clone(), game_dir.clone()))?;
82+
.ok_or_else(|| {
83+
super::Error::ExeNotFound(base.game_def.label.clone(), game_dir.clone())
84+
})?;
8185
let dist = ActiveDistribution {
8286
dist: GameDefPlatform::Other,
8387
game_dir: game_dir.to_path_buf(),

src/game/import/gamepass.rs

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
use std::path::PathBuf;
22

3+
use super::Error;
4+
use super::{GameImporter, ImportBase};
5+
use crate::game::registry::{ActiveDistribution, GameData};
36
use crate::ts::v1::models::ecosystem::GameDefPlatform;
47
use crate::util::reg::{self, HKey};
5-
use crate::game::registry::{ActiveDistribution, GameData};
6-
7-
use super::{GameImporter, ImportBase};
8-
use super::Error;
98

109
pub struct GamepassImporter {
1110
ident: String,
@@ -26,35 +25,41 @@ impl GameImporter for GamepassImporter {
2625
let uuid = reg::get_values_at(HKey::LocalMachine, &format!("{root}\\Package\\"))?
2726
.into_iter()
2827
.find(|x| x.key.starts_with(&self.ident))
29-
.ok_or_else(|| super::Error::NotFound(base.game_def.label.clone(), "Gamepass".to_string()))?
28+
.ok_or_else(|| {
29+
super::Error::NotFound(base.game_def.label.clone(), "Gamepass".to_string())
30+
})?
3031
.val
3132
.replace('\"', "");
3233

3334
let game_root = reg::get_keys_at(HKey::LocalMachine, &format!("Root\\{}\\", uuid))?
3435
.into_iter()
3536
.next()
36-
.ok_or_else(|| super::Error::NotFound(base.game_def.label.clone(), "Gamepass".to_string()))?;
37+
.ok_or_else(|| {
38+
super::Error::NotFound(base.game_def.label.clone(), "Gamepass".to_string())
39+
})?;
3740
let game_dir = PathBuf::from(reg::get_value_at(HKey::LocalMachine, &game_root, "Root")?);
3841

39-
let r2mm = base
40-
.game_def
41-
.r2modman
42-
.as_ref()
43-
.expect("Expected a valid r2mm field in the ecosystem schema, got nothing. This is a bug.");
42+
let r2mm = base.game_def.r2modman.as_ref().expect(
43+
"Expected a valid r2mm field in the ecosystem schema, got nothing. This is a bug.",
44+
);
4445

4546
let exe_path = base
4647
.overrides
4748
.custom_exe
4849
.clone()
4950
.or_else(|| super::find_game_exe(&r2mm.exe_names, &game_dir))
50-
.ok_or_else(|| super::Error::ExeNotFound(base.game_def.label.clone(), game_dir.clone()))?;
51+
.ok_or_else(|| {
52+
super::Error::ExeNotFound(base.game_def.label.clone(), game_dir.clone())
53+
})?;
5154
let dist = ActiveDistribution {
52-
dist: GameDefPlatform::GamePass { identifier: self.ident.to_string() },
55+
dist: GameDefPlatform::GamePass {
56+
identifier: self.ident.to_string(),
57+
},
5358
game_dir: game_dir.to_path_buf(),
5459
data_dir: game_dir.join(&r2mm.data_folder_name),
5560
exe_path,
5661
};
5762

5863
Ok(super::construct_data(base, dist))
5964
}
60-
}
65+
}

src/game/import/mod.rs

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,15 @@ pub mod steam;
66

77
use std::path::{Path, PathBuf};
88

9+
use super::registry::{ActiveDistribution, GameData};
910
use crate::game::import::ea::EaImporter;
1011
use crate::game::import::egs::EgsImporter;
1112
use crate::game::import::gamepass::GamepassImporter;
1213
use crate::game::import::steam::SteamImporter;
13-
use crate::ts::v1::{ecosystem, models::ecosystem::GameDefPlatform};
1414
use crate::ts::v1::models::ecosystem::GameDef;
15+
use crate::ts::v1::{ecosystem, models::ecosystem::GameDefPlatform};
1516
use crate::util::reg;
1617

17-
use super::registry::{ActiveDistribution, GameData};
18-
1918
#[derive(thiserror::Error, Debug)]
2019
pub enum Error {
2120
#[error("The game '{0}' is not supported by platform '{1}'.")]
@@ -87,10 +86,7 @@ impl ImportBase {
8786
}
8887

8988
pub fn with_overrides(self, overrides: ImportOverrides) -> Self {
90-
ImportBase {
91-
overrides,
92-
..self
93-
}
89+
ImportBase { overrides, ..self }
9490
}
9591

9692
pub fn with_wine_prefix(self, wine_prefix: Option<String>) -> Self {
@@ -102,16 +98,25 @@ impl ImportBase {
10298
}
10399

104100
pub fn select_importer(base: &ImportBase) -> Result<Box<dyn GameImporter>, Error> {
105-
base
106-
.game_def
101+
base.game_def
107102
.distributions
108103
.iter()
109104
.find_map(|dist| match dist {
110-
GameDefPlatform::Origin { identifier } => Some(Box::new(EaImporter::new(identifier)) as _),
111-
GameDefPlatform::EpicGames { identifier } => Some(Box::new(EgsImporter::new(identifier)) as _),
112-
GameDefPlatform::GamePass { identifier } => Some(Box::new(GamepassImporter::new(identifier)) as _),
113-
GameDefPlatform::Steam { identifier } => Some(Box::new(SteamImporter::new(identifier)) as _),
114-
GameDefPlatform::SteamDirect { identifier } => Some(Box::new(SteamImporter::new(identifier)) as _),
105+
GameDefPlatform::Origin { identifier } => {
106+
Some(Box::new(EaImporter::new(identifier)) as _)
107+
}
108+
GameDefPlatform::EpicGames { identifier } => {
109+
Some(Box::new(EgsImporter::new(identifier)) as _)
110+
}
111+
GameDefPlatform::GamePass { identifier } => {
112+
Some(Box::new(GamepassImporter::new(identifier)) as _)
113+
}
114+
GameDefPlatform::Steam { identifier } => {
115+
Some(Box::new(SteamImporter::new(identifier)) as _)
116+
}
117+
GameDefPlatform::SteamDirect { identifier } => {
118+
Some(Box::new(SteamImporter::new(identifier)) as _)
119+
}
115120
_ => None,
116121
})
117122
.ok_or_else(|| Error::NotSupported(base.game_id.clone(), "".into()))
@@ -126,9 +131,15 @@ pub fn find_game_exe(possible: &[String], base_path: &Path) -> Option<PathBuf> {
126131

127132
pub fn construct_data(base: ImportBase, dist: ActiveDistribution) -> GameData {
128133
GameData {
129-
identifier: base.overrides.custom_id.unwrap_or(base.game_def.label.clone()),
134+
identifier: base
135+
.overrides
136+
.custom_id
137+
.unwrap_or(base.game_def.label.clone()),
130138
ecosystem_label: base.game_def.label,
131-
display_name: base.overrides.custom_name.unwrap_or(base.game_def.meta.display_name),
139+
display_name: base
140+
.overrides
141+
.custom_name
142+
.unwrap_or(base.game_def.meta.display_name),
132143
active_distribution: dist,
133144
possible_distributions: base.game_def.distributions,
134145
}

src/game/import/nodrm.rs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
use std::path::{Path, PathBuf};
22

3+
use super::{Error, GameImporter, ImportBase};
34
use crate::game::registry::{ActiveDistribution, GameData};
45
use crate::ts::v1::models::ecosystem::GameDefPlatform;
56

6-
use super::{Error, GameImporter, ImportBase};
7-
8-
pub struct NoDrmImporter {
7+
pub struct NoDrmImporter {
98
game_dir: PathBuf,
109
}
1110

@@ -23,18 +22,18 @@ impl GameImporter for NoDrmImporter {
2322
Err(Error::DirNotFound(self.game_dir.to_path_buf()))?;
2423
}
2524

26-
let r2mm = base
27-
.game_def
28-
.r2modman
29-
.as_ref()
30-
.expect("Expected a valid r2mm field in the ecosystem schema, got nothing. This is a bug.");
25+
let r2mm = base.game_def.r2modman.as_ref().expect(
26+
"Expected a valid r2mm field in the ecosystem schema, got nothing. This is a bug.",
27+
);
3128

3229
let exe_path = base
3330
.overrides
3431
.custom_exe
3532
.clone()
3633
.or_else(|| super::find_game_exe(&r2mm.exe_names, &self.game_dir))
37-
.ok_or_else(|| super::Error::ExeNotFound(base.game_def.label.clone(), self.game_dir.clone()))?;
34+
.ok_or_else(|| {
35+
super::Error::ExeNotFound(base.game_def.label.clone(), self.game_dir.clone())
36+
})?;
3837
let dist = ActiveDistribution {
3938
dist: GameDefPlatform::Other,
4039
game_dir: self.game_dir.to_path_buf(),

0 commit comments

Comments
 (0)