Make Game::set_additional_data_paths() take Vec<PathBuf>, not &[&Path]

This commit is contained in:
Oliver Hamlet
2025-07-22 19:56:21 +01:00
parent 3d4320c2c9
commit bdc1f827f6
4 changed files with 18 additions and 19 deletions
+2 -3
View File
@@ -125,9 +125,8 @@ impl Game {
&mut self,
additional_data_paths: &[&str],
) -> Result<(), VerboseError> {
self.0
.set_additional_data_paths(&strings_to_paths(additional_data_paths))
.map_err(Into::into)
let paths = additional_data_paths.iter().map(Into::into).collect();
self.0.set_additional_data_paths(paths).map_err(Into::into)
}
pub fn database(&self) -> Box<Database> {
+2 -1
View File
@@ -104,7 +104,8 @@ impl Game {
#[napi]
pub fn set_additional_data_paths(&mut self, paths: Vec<String>) -> Result<(), VerboseError> {
self.0.set_additional_data_paths(&as_paths(&paths))?;
let paths: Vec<_> = paths.into_iter().map(Into::into).collect();
self.0.set_additional_data_paths(paths)?;
Ok(())
}
+1 -2
View File
@@ -97,9 +97,8 @@ impl Game {
self.0.additional_data_paths()
}
#[expect(clippy::needless_pass_by_value, reason = "Required by PyO3")]
fn set_additional_data_paths(&mut self, paths: Vec<PathBuf>) -> Result<(), VerboseError> {
self.0.set_additional_data_paths(&as_paths(&paths))?;
self.0.set_additional_data_paths(paths)?;
Ok(())
}
+13 -13
View File
@@ -272,23 +272,18 @@ impl Game {
/// database object.
pub fn set_additional_data_paths(
&mut self,
additional_data_paths: &[&Path],
additional_data_paths: Vec<PathBuf>,
) -> Result<(), DatabaseLockPoisonError> {
let paths: Vec<_> = additional_data_paths
.iter()
.map(|p| p.to_path_buf())
.collect();
let mut database = self.database.write()?;
database.clear_condition_cache();
self.load_order
.game_settings_mut()
.set_additional_plugins_directories(paths.clone());
.set_additional_plugins_directories(additional_data_paths.clone());
database
.condition_evaluator_state_mut()
.set_additional_data_paths(paths);
.set_additional_data_paths(additional_data_paths);
Ok(())
}
@@ -1222,7 +1217,7 @@ mod tests {
std::fs::File::create(fixture.data_path().join("plugin.esp")).unwrap();
game.set_additional_data_paths(&[Path::new("")]).unwrap();
game.set_additional_data_paths(vec!["".into()]).unwrap();
let evaluated_metadata = game
.database()
@@ -1268,8 +1263,10 @@ mod tests {
.set_modified(SystemTime::now() + Duration::from_secs(3600))
.unwrap();
game.set_additional_data_paths(&[data_file_path.parent().unwrap()])
.unwrap();
game.set_additional_data_paths(vec![
data_file_path.parent().unwrap().to_path_buf(),
])
.unwrap();
game.load_current_load_order_state().unwrap();
load_order.push(filename.to_owned());
@@ -1724,8 +1721,11 @@ mod tests {
)
.unwrap();
game.set_additional_data_paths(&[path1.parent().unwrap(), path2.parent().unwrap()])
.unwrap();
game.set_additional_data_paths(vec![
path1.parent().unwrap().to_path_buf(),
path2.parent().unwrap().to_path_buf(),
])
.unwrap();
game.load_plugins_common(&[], LoadScope::HeaderOnly)
.unwrap();