@@ -3,7 +3,7 @@ use std::ffi::OsString;
33use std:: fs:: { self , OpenOptions } ;
44use std:: hash:: { Hash , Hasher } ;
55use std:: io:: { Cursor , Read , Write } ;
6- use std:: path:: { Path , PathBuf } ;
6+ use std:: path:: Path ;
77
88use log:: { info, warn} ;
99
@@ -78,7 +78,7 @@ impl SettingsManager {
7878 Self :: write_default ( default. as_path ( ) ) ?;
7979 let manager = Self :: load ( old. as_path ( ) , local. as_path ( ) , backup, error) ?;
8080
81- manager. save ( local. as_path ( ) , & Some ( backup. to_path_buf ( ) ) ) ?;
81+ manager. save ( local. as_path ( ) , & Some ( backup. into ( ) ) ) ?;
8282
8383 Ok ( manager)
8484 }
@@ -110,7 +110,7 @@ impl SettingsManager {
110110 Ok ( Default :: default ( ) )
111111 }
112112
113- pub fn save ( & self , to : & Path , archive_folder : & Option < PathBuf > ) -> Result < ( ) , SettingsManagerError > {
113+ pub fn save ( & self , to : & Path , archive_folder : & Option < Box < Path > > ) -> Result < ( ) , SettingsManagerError > {
114114 // lets backup the previous configuration, if we have any...
115115 let existing = get_file_at ( to, OpenOptions :: new ( ) . read ( true ) ) . ok ( ) ;
116116
@@ -204,7 +204,7 @@ impl SettingsManager {
204204 }
205205 }
206206
207- fn backup ( & self , to : & Path , folder : PathBuf ) -> Result < ( ) , SettingsManagerError > {
207+ fn backup ( & self , to : & Path , folder : & Path ) -> Result < ( ) , SettingsManagerError > {
208208 let ext = match to. extension ( ) . map ( |f| f. to_os_string ( ) ) {
209209 Some ( mut ext) => {
210210 ext. push ( ".json" ) ;
@@ -218,12 +218,12 @@ impl SettingsManager {
218218 self . write_json ( data. by_ref ( ) )
219219 . map_err ( |err| SettingsManagerError :: FailedToWriteToFile {
220220 message : "(backup)" . to_string ( ) ,
221- to : to. to_path_buf ( ) ,
221+ to : to. into ( ) ,
222222
223223 source : err. into ( ) ,
224224 } ) ?;
225225
226- Self :: archive ( Cursor :: new ( data) , & to. with_extension ( ext) , & folder) ?;
226+ Self :: archive ( Cursor :: new ( data) , & to. with_extension ( ext) , folder) ?;
227227 Ok ( ( ) )
228228 }
229229
@@ -233,7 +233,7 @@ impl SettingsManager {
233233 let to_folder = to_folder
234234 . canonicalize ( )
235235 . map_err ( |err| SettingsManagerError :: FailedToResolvePath {
236- at : to_folder. to_owned ( ) ,
236+ at : to_folder. into ( ) ,
237237 source : IoError :: from ( err) . into ( ) ,
238238 } ) ?;
239239
@@ -248,7 +248,7 @@ impl SettingsManager {
248248 } )
249249 . map_err ( |err| SettingsManagerError :: FailedToReadFromFile {
250250 message : "(archive, read into)" . to_string ( ) ,
251- from : from. to_owned ( ) ,
251+ from : from. into ( ) ,
252252 source : err. into ( ) ,
253253 } ) ?;
254254
@@ -348,7 +348,7 @@ impl SettingsManager {
348348 None => OsString :: from ( test. to_lowercase ( ) ) ,
349349 } ;
350350
351- broken. backup ( & file. 1 . with_extension ( ext) , import_error_folder. to_owned ( ) ) ?;
351+ broken. backup ( & file. 1 . with_extension ( ext) , import_error_folder. as_path ( ) ) ?;
352352 }
353353
354354 // Replace broken with default, and remove everything else.
@@ -381,7 +381,7 @@ impl SettingsManager {
381381 None => OsString :: from ( test. to_lowercase ( ) ) ,
382382 } ;
383383
384- broken. backup ( & file. 1 . with_extension ( ext) , import_error_folder. to_owned ( ) ) ?;
384+ broken. backup ( & file. 1 . with_extension ( ext) , import_error_folder. as_path ( ) ) ?;
385385 }
386386
387387 builder = test_builder. tracker_settings . clean ( ) . into ( ) ;
@@ -415,7 +415,7 @@ impl SettingsManager {
415415 None => OsString :: from ( test. to_lowercase ( ) ) ,
416416 } ;
417417
418- broken. backup ( & file. 1 . with_extension ( ext) , import_error_folder) ?;
418+ broken. backup ( & file. 1 . with_extension ( ext) , import_error_folder. as_path ( ) ) ?;
419419
420420 return Err ( SettingsManagerError :: FailedToImportOldSettings {
421421 from : file. 1 ,
@@ -448,7 +448,7 @@ impl SettingsManager {
448448 }
449449 Err ( err) => Err ( SettingsManagerError :: FailedToMoveFile {
450450 from : file. 1 ,
451- to : backup,
451+ to : backup. into_boxed_path ( ) ,
452452 source : IoError :: from ( err) . into ( ) ,
453453 } ) ,
454454 }
@@ -459,13 +459,13 @@ impl SettingsManager {
459459 if path. is_dir ( ) {
460460 return Ok ( ( ) ) ;
461461 } else {
462- return Err ( SettingsManagerError :: FailedToResolveDirectory { at : folder. to_owned ( ) } ) ;
462+ return Err ( SettingsManagerError :: FailedToResolveDirectory { at : folder. into ( ) } ) ;
463463 }
464464 }
465465 match fs:: create_dir ( folder) {
466466 Ok ( _) => Ok ( ( ) ) ,
467467 Err ( err) => Err ( SettingsManagerError :: FailedToPrepareDirectory {
468- at : folder. to_owned ( ) ,
468+ at : folder. into ( ) ,
469469 source : IoError :: from ( err) . into ( ) ,
470470 } ) ,
471471 }
0 commit comments