automate successful install progression and handle file not found err… #1318
Annotations
91 warnings
useless use of `format!`:
src/main.rs#L45
warning: useless use of `format!`
--> src/main.rs:45:25
|
45 | let mut dialog_text = format!("Unrecoverable crash occurred!");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Unrecoverable crash occurred!".to_string()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format
|
current MSRV (Minimum Supported Rust Version) is `1.61.0` but this item is stable since `1.64.0`:
/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/macros/select.rs#L505
warning: current MSRV (Minimum Supported Rust Version) is `1.61.0` but this item is stable since `1.64.0`
--> src/util/process.rs:61:5
|
61 | / tokio::select! {
62 | | Ok(Some(line)) = stdout_reader.next_line() => {
63 | | let formatted_line = format!("{line}\n");
64 | | log_file.write_all(formatted_line.as_bytes()).await?;
... |
90 | | }
91 | | }
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv
= note: this warning originates in the macro `$crate::select` which comes from the expansion of the macro `tokio::select` (in Nightly builds, run with -Z macro-backtrace for more info)
|
unneeded `return` statement:
src/util/process.rs#L93
warning: unneeded `return` statement
--> src/util/process.rs:93:3
|
93 | return Ok(process_status);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
93 - return Ok(process_status);
93 + Ok(process_status)
|
|
unneeded `return` statement:
src/util/os.rs#L17
warning: unneeded `return` statement
--> src/util/os.rs:17:3
|
17 | return None;
| ^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
17 - return None;
17 + None
|
|
unneeded `return` statement:
src/util/game_milestones.rs#L19
warning: unneeded `return` statement
--> src/util/game_milestones.rs:19:3
|
19 | / return vec![
20 | | MilestoneCriteria {
21 | | name: "geyser".to_string(),
22 | | completed: vec![],
... |
227 | | },
228 | | ];
| |___^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
19 ~ vec![
20 + MilestoneCriteria {
21 + name: "geyser".to_string(),
22 + completed: vec![],
23 + introduced: vec![],
24 + },
25 + MilestoneCriteria {
26 + // (village1-yakow 10)
27 + // (village1-mayor-money 11)
28 + // (village1-uncle-money 12)
29 + // (village1-oracle-money1 13)
30 + // (village1-oracle-money2 14)
31 + // (beach-ecorocks 15)
32 + // (village1-buzzer 75)
33 + name: "sandover".to_string(),
34 + completed: vec![10, 11, 12, 13, 14, 75],
35 + introduced: vec![15],
36 + },
37 + MilestoneCriteria {
38 + // (beach-ecorocks 15)
39 + // (beach-pelican 16)
40 + // (beach-flutflut 17)
41 + // (beach-seagull 18)
42 + // (beach-cannon 19)
43 + // (beach-buzzer 20)
44 + // (beach-gimmie 21)
45 + // (beach-sentinel 22)
46 + name: "sentinel".to_string(),
47 + completed: vec![15, 16, 17, 18, 19, 20, 21, 22],
48 + introduced: vec![],
49 + },
50 + MilestoneCriteria {
51 + // (jungle-eggtop 2)
52 + // (jungle-lurkerm 3)
53 + // (jungle-tower 4)
54 + // (jungle-fishgame 5)
55 + // (jungle-plant 6)
56 + // (jungle-buzzer 7)
57 + // (jungle-canyon-end 8)
58 + // (jungle-temple-door 9)
59 + name: "jungle".to_string(),
60 + completed: vec![2, 3, 4, 5, 6, 7, 8, 9],
61 + introduced: vec![],
62 + },
63 + MilestoneCriteria {
64 + // (misty-muse 23)
65 + // (misty-boat 24)
66 + // (misty-warehouse 25)
67 + // (misty-cannon 26)
68 + // (misty-bike 27)
69 + // (misty-buzzer 28)
70 + // (misty-bike-jump 29)
71 + // (misty-eco-challenge 30)
72 + // (leaving-misty 114)
73 + name: "misty".to_string(),
74 + completed: vec![23, 24, 25, 26, 27, 28, 29, 30, 114],
75 + introduced: vec![],
76 + },
77 + MilestoneCriteria {
78 + // (firecanyon-buzzer 68)
79 + // (firecanyon-end 69)
80 + // (firecanyon-assistant 102)
81 + name: "firecanyon".to_string(),
82 + completed: vec![68, 69],
83 + introduced: vec![102],
84 + },
85 + MilestoneCriteria {
86 + // (village2-gambler-money 31)
87 + // (village2-geologist-money 32)
88 + // (village2-warrior-money 33)
89 + // (village2-oracle-money1 34)
90 + // (village2-oracle-money2 35)
91 + // (firecanyon-buzzer 68)
92 + // (firecanyon-end 69)
93 + // (village2-buzzer 76)
94 + // (firecanyon-assistant 102)
95 + name: "village2".to_string(),
96 + completed: vec![31, 32, 33, 34, 35, 68, 69],
97 + introduced: vec![76, 102],
98 + },
99 + MilestoneCriteria {
100 + // (rolling-race 52)
101 + // (rolling-robbers 53)
102 + // (rolling-moles 54)
103 + // (rolling-plants 55)
104 + // (rolling-lake 56)
105 + // (rolling-buzzer 57)
106 + // (rolling-ring-chase-1 58)
107 + // (rolling-ring-chase-2 59)
108 + name: "basin".to_string(),
109 + completed: vec![52, 53, 54, 55, 56, 57, 58, 59],
110 + introduced: vec![],
111 + },
112 + MilestoneCriteria {
113 + // (swamp-billy 36)
114 + // (swamp-flutflut 37)
115 + // (swamp-battle 38)
116 + // (swamp-tether-1 39)
117 + // (swamp-tether-2 40)
118 + // (swamp-tether-3 41)
119 + // (swamp-tether-4 42)
120 + // (swamp-buzzer 43)
121 + // (swamp-arm 104)
122 + name: "swamp".to_string(),
123 + completed: vec![36, 37, 38, 39, 40, 41, 42, 43, 104],
124 + introduced: vec![],
125 + },
126 + MilestoneCriteria {
127 + // (sunken-platforms 44)
128 + // (sunken-pipe 45)
129 + // (sunken-slide 46)
130 + // (sunken-room 47)
131 + // (sunken-sharks 48)
132 + // (sunken-buzzer 49)
133 + // (sunken-top-of-helix 50)
134 + // (sunken-spinning-room 51)
135 + name: "lpc".to_string(),
136 + completed: vec![44, 45, 46, 47, 48, 49, 50, 51],
137 + introduced: vec![],
138 + },
139 + MilestoneCriteria {
140 + // (ogre-boss 86)
141 + // (village2-levitator 103)
142 + name: "klaww".to_string(),
143 + completed: vec![103],
144 + introduced: vec![86],
145 + },
146 + MilestoneCriteria {
147 + // (ogre-boss 86)
148 + // (ogre-end 87)
149 + // (ogre-buzzer 88)
150 + // (ogre-secret 110)
151 + name: "mountainpass".to_string(),
152 + completed: vec![86, 88, 110],
153 + introduced: vec![87],
154 + },
155 + MilestoneCriteria {
156 + // (village3-extra1 74)
157 + // (village3-buzzer 77)
158 + // (village3-miner-money1 96)
159 + // (village3-miner-money2 97)
160 + // (village3-miner-money3 98)
161 + // (village3-miner-money4 99)
162 + // (village3-oracle-money1 100)
163 + // (village3-oracle-money2 101)
164 + // (village3-button 105)
165 + name: "village3".to_string(),
166 + completed: vec![74, 77, 96, 97, 98, 99, 100, 101, 105],
167 + introduced: vec![],
168 + },
169 + MilestoneCriteria {
170 + // (cave-gnawers 78)
171 + // (cave-dark-crystals 79)
172 + // (cave-dark-climb 80)
173 + // (cave-robot-climb 81)
174 + // (cave-swing-poles 82)
175 + // (cave-spider-tunnel 83)
176 + // (cave-platforms 84)
177 + // (cave-buzzer 85)
178 + name: "cave".to_string(),
179 + completed: vec![78, 79, 80, 81, 82, 83, 84, 85],
180 + introduced: vec![],
181 + },
182 + MilestoneCriteria {
183 + // (snow-eggtop 60)
184 + // (snow-ram 61)
185 + // (snow-fort 62)
186 + // (snow-ball 63)
187 + // (snow-bunnies 64)
188 + // (snow-buzzer 65)
189 + // (snow-bumpers 66)
190 + // (snow-cage 67)
191 + name: "snowy".to_string(),
192 + completed: vec![60, 61, 62, 63, 64, 65, 66, 67],
193 + introduced: vec![],
194 + },
195 + MilestoneCriteria {
196 + // (lavatube-end 89)
197 + // (lavatube-buzzer 90)
198 + // (lavatube-balls 107)
199 + // (lavatube-start 108)
200 + // (assistant-village3 115)
201 + name: "lavatube".to_string(),
202 + completed: vec![90, 107, 108, 115],
203 + introduced: vec![89],
204 + },
205 + MilestoneCriteria {
206 + // (citadel-sage-green 70)
207 + // (citadel-sage-blue 71)
208 + // (citadel-sage-red 72)
209 + // (citadel-sage-yellow 73)
210 + // (lavatube-end 89)
211 + // (citadel-buzzer 91)
212 + name: "citadel".to_string(),
213 + completed: vec![71, 72, 73, 89, 91],
214 + introduced: vec![70],
215 + },
216 + MilestoneCriteria {
217 + // (citadel-sage-green 70)
218 + name: "finalboss".to_string(),
219 + completed: vec![70],
220 + introduced: vec![],
221 + },
222 + MilestoneCriteria {
223 + // (finalboss-movies 112)
224 + name: "end".to_string(),
225 + completed: vec![],
226 + introduced: vec![112],
227 + },
228 ~ ]
|
|
unneeded `return` statement:
src/util/file.rs#L78
warning: unneeded `return` statement
--> src/util/file.rs:78:3
|
78 | / return format!(
79 | | "data:image/{};base64,{}",
80 | | get_image_file_type(&hex),
81 | | base64.replace("\r\n", "")
82 | | );
| |___^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
78 ~ format!(
79 + "data:image/{};base64,{}",
80 + get_image_file_type(&hex),
81 + base64.replace("\r\n", "")
82 ~ )
|
|
file opened with `create`, but `truncate` behavior not defined:
src/util/file.rs#L52
warning: file opened with `create`, but `truncate` behavior not defined
--> src/util/file.rs:52:6
|
52 | .create(true)
| ^^^^^^^^^^^^- help: add: `.truncate(true)`
|
= help: if you intend to overwrite an existing file entirely, call `.truncate(true)`
= help: if you instead know that you may want to keep some parts of the old file, call `.truncate(false)`
= help: alternatively, use `.append(true)` to append to the file instead of overwriting it
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_open_options
= note: `#[warn(clippy::suspicious_open_options)]` on by default
|
casting to the same type is unnecessary (`usize` -> `usize`):
src/config.rs#L679
warning: casting to the same type is unnecessary (`usize` -> `usize`)
--> src/config.rs:679:10
|
679 | if (mod_source_index as usize) < sources.len() {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `mod_source_index`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
= note: `#[warn(clippy::unnecessary_cast)]` on by default
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/config.rs#L656
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/config.rs:656:58
|
656 | let game_config = self.get_supported_game_config_mut(&game_name)?;
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
current MSRV (Minimum Supported Rust Version) is `1.61.0` but this item is stable since `1.70.0`:
src/config.rs#L318
warning: current MSRV (Minimum Supported Rust Version) is `1.61.0` but this item is stable since `1.70.0`
--> src/config.rs:318:18
|
318 | .is_some_and(|x| x != "official")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv
|
current MSRV (Minimum Supported Rust Version) is `1.61.0` but this item is stable since `1.70.0`:
src/config.rs#L306
warning: current MSRV (Minimum Supported Rust Version) is `1.61.0` but this item is stable since `1.70.0`
--> src/config.rs:306:16
|
306 | .is_some_and(|x| x != "official")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv
= note: `#[warn(clippy::incompatible_msrv)]` on by default
|
unneeded `return` statement:
src/config.rs#L267
warning: unneeded `return` statement
--> src/config.rs:267:9
|
267 | / return Err(ConfigError::Configuration(format!(
268 | | "Supported game missing from games map: {game_name}"
269 | | )));
| |___________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
267 ~ Err(ConfigError::Configuration(format!(
268 + "Supported game missing from games map: {game_name}"
269 ~ )))
|
|
unneeded `return` statement:
src/config.rs#L246
warning: unneeded `return` statement
--> src/config.rs:246:9
|
246 | / return Err(ConfigError::Configuration(format!(
247 | | "Supported game missing from games map: {game_name}"
248 | | )));
| |___________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
246 ~ Err(ConfigError::Configuration(format!(
247 + "Supported game missing from games map: {game_name}"
248 ~ )))
|
|
the borrowed expression implements the required traits:
src/commands/support.rs#L460
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:460:14
|
460 | fs::rename(&save_file.path(), save_path).map_err(|_| {
| ^^^^^^^^^^^^^^^^^ help: change this to: `save_file.path()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/support.rs#L232
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/support.rs:232:19
|
232 | &mod_path,
| ^^^^^^^^^ help: change this to: `mod_path`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/support.rs#L220
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/support.rs:220:19
|
220 | &mod_path,
| ^^^^^^^^^ help: change this to: `mod_path`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
the borrowed expression implements the required traits:
src/commands/support.rs#L197
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:197:58
|
197 | let mod_directory = install_path.join("features").join(&game_name).join("mods");
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/support.rs#L166
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:166:44
|
166 | let data_dir = active_version_dir.join(&game_name).join("data");
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/support.rs#L154
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:154:11
|
154 | .join(&game_name)
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/support.rs#L151
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:151:11
|
151 | .join(&game_name)
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/support.rs#L145
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:145:11
|
145 | .join(&game_name)
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/support.rs#L135
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:135:46
|
135 | let jak1_log_dir = active_version_dir.join(&game_name).join("data").join("log");
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/support.rs#L125
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:125:27
|
125 | &game_config_dir.join(&game_name).join("saves"),
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/support.rs#L116
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:116:27
|
116 | &game_config_dir.join(&game_name).join("misc"),
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/support.rs#L107
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:107:27
|
107 | &game_config_dir.join(&game_name).join("settings"),
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`:
src/commands/game.rs#L221
warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`
--> src/commands/game.rs:221:9
|
221 | / match get_saves_highest_milestone(&entry.into_path(), &milestones) {
222 | | Some((name, idx)) => {
223 | | info!("Furthest milestone {} at index {}", name, idx);
224 | | if idx > highest_milestone_idx {
... |
229 | | None => {}
230 | | }
| |_________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
= note: `#[warn(clippy::single_match)]` on by default
help: try
|
221 ~ if let Some((name, idx)) = get_saves_highest_milestone(&entry.into_path(), &milestones) {
222 + info!("Furthest milestone {} at index {}", name, idx);
223 + if idx > highest_milestone_idx {
224 + highest_milestone_idx = idx;
225 + furthest_milestone_name = name.to_owned();
226 + }
227 + }
|
|
unneeded `return` statement:
src/commands/game.rs#L235
warning: unneeded `return` statement
--> src/commands/game.rs:235:3
|
235 | return Ok(furthest_milestone_name);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
235 - return Ok(furthest_milestone_name);
235 + Ok(furthest_milestone_name)
|
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/game.rs#L157
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/game.rs:157:48
|
157 | if tasks.contains_key(&task_id) && tasks[&task_id].completed {
| ^^^^^^^^ help: change this to: `task_id`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/game.rs#L157
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/game.rs:157:29
|
157 | if tasks.contains_key(&task_id) && tasks[&task_id].completed {
| ^^^^^^^^ help: change this to: `task_id`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/game.rs#L152
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/game.rs:152:48
|
152 | if tasks.contains_key(&task_id) && tasks[&task_id].introduced {
| ^^^^^^^^ help: change this to: `task_id`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/game.rs#L152
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/game.rs:152:29
|
152 | if tasks.contains_key(&task_id) && tasks[&task_id].introduced {
| ^^^^^^^^ help: change this to: `task_id`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
writing `&Vec` instead of `&[_]` involves a new object where a slice will do:
src/commands/game.rs#L111
warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do
--> src/commands/game.rs:111:15
|
111 | milestones: &Vec<MilestoneCriteria>,
| ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[MilestoneCriteria]`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg
= note: `#[warn(clippy::ptr_arg)]` on by default
|
unneeded `return` statement:
src/commands/game.rs#L163
warning: unneeded `return` statement
--> src/commands/game.rs:163:3
|
163 | return None;
| ^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
163 - return None;
163 + None
|
|
the borrowed expression implements the required traits:
src/commands/features/texture_packs.rs#L317
warning: the borrowed expression implements the required traits
--> src/commands/features/texture_packs.rs:317:22
|
317 | match delete_dir(&texture_pack_dir.join(&pack)) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `texture_pack_dir.join(&pack)`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/features/texture_packs.rs#L270
warning: the borrowed expression implements the required traits
--> src/commands/features/texture_packs.rs:270:13
|
270 | .join(&pack)
| ^^^^^ help: change this to: `pack`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/features/texture_packs.rs#L220
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/features/texture_packs.rs:220:35
|
220 | extract_zip_file(&zip_path_buf, &destination_dir, false).map_err(|err| {
| ^^^^^^^^^^^^^^^^ help: change this to: `destination_dir`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
the borrowed expression implements the required traits:
src/commands/features/texture_packs.rs#L94
warning: the borrowed expression implements the required traits
--> src/commands/features/texture_packs.rs:94:17
|
94 | / &entry_path
95 | | .join("custom_assets")
96 | | .join(&game_name)
97 | | .join("texture_replacements"),
| |_______________________________________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
help: change this to
|
94 ~ entry_path
95 + .join("custom_assets")
96 + .join(&game_name)
97 ~ .join("texture_replacements"),
|
|
unnecessary use of `to_string`:
src/commands/features/mods.rs#L761
warning: unnecessary use of `to_string`
--> src/commands/features/mods.rs:761:31
|
761 | return Ok(to_image_base64(&cover_path.to_string_lossy().to_string()));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `cover_path.to_string_lossy().as_ref()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned
|
unnecessary use of `to_string`:
src/commands/features/mods.rs#L736
warning: unnecessary use of `to_string`
--> src/commands/features/mods.rs:736:31
|
736 | return Ok(to_image_base64(&cover_path.to_string_lossy().to_string()));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `cover_path.to_string_lossy().as_ref()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned
= note: `#[warn(clippy::unnecessary_to_owned)]` on by default
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/features/mods.rs#L174
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/features/mods.rs:174:49
|
174 | extract_and_delete_tar_ball(&download_path, &parent_path).map_err(|err| {
| ^^^^^^^^^^^^ help: change this to: `parent_path`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/features/mods.rs#L174
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/features/mods.rs:174:33
|
174 | extract_and_delete_tar_ball(&download_path, &parent_path).map_err(|err| {
| ^^^^^^^^^^^^^^ help: change this to: `download_path`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/features/mods.rs#L169
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/features/mods.rs:169:49
|
169 | extract_and_delete_zip_file(&download_path, &parent_path, false).map_err(|err| {
| ^^^^^^^^^^^^ help: change this to: `parent_path`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/features/mods.rs#L169
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/features/mods.rs:169:33
|
169 | extract_and_delete_zip_file(&download_path, &parent_path, false).map_err(|err| {
| ^^^^^^^^^^^^^^ help: change this to: `download_path`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/features/mods.rs#L154
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/features/mods.rs:154:32
|
154 | download_file(&download_url, &download_path)
| ^^^^^^^^^^^^^^ help: change this to: `download_path`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
unneeded `return` statement:
src/commands/features/mods.rs#L184
warning: unneeded `return` statement
--> src/commands/features/mods.rs:184:3
|
184 | / return Ok(InstallStepOutput {
185 | | success: true,
186 | | msg: None,
187 | | });
| |____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
184 ~ Ok(InstallStepOutput {
185 + success: true,
186 + msg: None,
187 ~ })
|
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/features/mods.rs#L107
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/features/mods.rs:107:40
|
107 | extract_tar_ball(&bundle_path_buf, &destination_dir).map_err(|err| {
| ^^^^^^^^^^^^^^^^ help: change this to: `destination_dir`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/features/mods.rs#L102
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/features/mods.rs:102:40
|
102 | extract_zip_file(&bundle_path_buf, &destination_dir, false).map_err(|err| {
| ^^^^^^^^^^^^^^^^ help: change this to: `destination_dir`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/config.rs#L512
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/config.rs:512:80
|
512 | let tooling_version = Version::parse(version.strip_prefix('v').unwrap_or(&version))
| ^^^^^^^^ help: change this to: `version`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/config.rs#L471
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/config.rs:471:80
|
471 | let tooling_version = Version::parse(version.strip_prefix('v').unwrap_or(&version))
| ^^^^^^^^ help: change this to: `version`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
unneeded `return` statement:
src/commands/config.rs#L298
warning: unneeded `return` statement
--> src/commands/config.rs:298:3
|
298 | return is_game_installed_impl(&mut config_lock, game_name);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
298 - return is_game_installed_impl(&mut config_lock, game_name);
298 + is_game_installed_impl(&mut config_lock, game_name)
|
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/config.rs#L220
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/config.rs:220:83
|
220 | let tooling_version = Version::parse(active_version.strip_prefix('v').unwrap_or(&active_version))
| ^^^^^^^^^^^^^^^ help: change this to: `active_version`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
unneeded `return` statement:
src/commands/config.rs#L138
warning: unneeded `return` statement
--> src/commands/config.rs:138:3
|
138 | return Ok(false);
| ^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
138 - return Ok(false);
138 + Ok(false)
|
|
unneeded `return` statement:
src/commands/config.rs#L112
warning: unneeded `return` statement
--> src/commands/config.rs:112:3
|
112 | / return Err(CommandError::Configuration(
113 | | "Unable to find relevant drive to check for space".to_owned(),
114 | | ));
| |____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
112 ~ Err(CommandError::Configuration(
113 + "Unable to find relevant drive to check for space".to_owned(),
114 ~ ))
|
|
the borrowed expression implements the required traits:
src/commands/config.rs#L23
warning: the borrowed expression implements the required traits
--> src/commands/config.rs:23:32
|
23 | Some(dir) => Ok(delete_dir(&dir.join("data"))?),
| ^^^^^^^^^^^^^^^^^ help: change this to: `dir.join("data")`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
= note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default
|
unneeded `return` statement:
src/commands/binaries.rs#L879
warning: unneeded `return` statement
--> src/commands/binaries.rs:879:68
|
879 | log::error!("Error occured when tracking playtime: {}", err);
| ____________________________________________________________________^
880 | | return;
| |____________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
879 - log::error!("Error occured when tracking playtime: {}", err);
880 - return;
879 + log::error!("Error occured when tracking playtime: {}", err);
|
|
this boolean expression can be simplified:
src/commands/binaries.rs#L862
warning: this boolean expression can be simplified
--> src/commands/binaries.rs:862:12
|
862 | if !status_code.code().is_some() || status_code.code().unwrap() != 0 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `status_code.code().is_none()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool
= note: `#[warn(clippy::nonminimal_bool)]` on by default
|
useless use of `format!`:
src/commands/binaries.rs#L813
warning: useless use of `format!`
--> src/commands/binaries.rs:813:52
|
813 | return Err(CommandError::BinaryExecution(format!(
| ____________________________________________________^
814 | | "Failed to resolve custom binary parent directory"
815 | | )));
| |___________^ help: consider using `.to_string()`: `"Failed to resolve custom binary parent directory".to_string()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format
= note: `#[warn(clippy::useless_format)]` on by default
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/binaries.rs#L737
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/binaries.rs:737:34
|
737 | let data_folder = get_data_dir(&config_info, &game_name, false)?;
| ^^^^^^^^^^^^ help: change this to: `config_info`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
unneeded `return` statement:
src/commands/binaries.rs#L726
warning: unneeded `return` statement
--> src/commands/binaries.rs:726:7
|
726 | return Ok(None);
| ^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
726 - return Ok(None);
726 + Ok(None)
|
|
unneeded `return` statement:
src/commands/binaries.rs#L722
warning: unneeded `return` statement
--> src/commands/binaries.rs:722:9
|
722 | return Ok(None);
| ^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
722 - return Ok(None);
722 + Ok(None)
|
|
unneeded `return` statement:
src/commands/binaries.rs#L718
warning: unneeded `return` statement
--> src/commands/binaries.rs:718:13
|
718 | return Ok(None);
| ^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
718 - return Ok(None);
718 + Ok(None)
|
|
unneeded `return` statement:
src/commands/binaries.rs#L714
warning: unneeded `return` statement
--> src/commands/binaries.rs:714:13
|
714 | return Ok(Some(test_results.success));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
714 - return Ok(Some(test_results.success));
714 + Ok(Some(test_results.success))
|
|
unneeded `return` statement:
src/commands/binaries.rs#L644
warning: unneeded `return` statement
--> src/commands/binaries.rs:644:7
|
644 | / return Err(CommandError::BinaryExecution(
645 | | "Unable to launch REPL".to_owned(),
646 | | ));
| |________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
= note: `#[warn(clippy::needless_return)]` on by default
help: remove `return`
|
644 ~ Err(CommandError::BinaryExecution(
645 + "Unable to launch REPL".to_owned(),
646 ~ ))
|
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/binaries.rs#L77
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/binaries.rs:77:83
|
77 | let tooling_version = Version::parse(active_version.strip_prefix('v').unwrap_or(&active_version))
| ^^^^^^^^^^^^^^^ help: change this to: `active_version`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
= note: `#[warn(clippy::needless_borrow)]` on by default
|
variant `ModSource` is never constructed:
src/cache.rs#L12
warning: variant `ModSource` is never constructed
--> src/cache.rs:12:3
|
10 | pub enum CacheError {
| ---------- variant in this enum
11 | #[error("{0}")]
12 | ModSource(String),
| ^^^^^^^^^
|
= note: `CacheError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
= note: `#[warn(dead_code)]` on by default
|
variable does not need to be mutable:
src/commands/features/mods.rs#L712
warning: variable does not need to be mutable
--> src/commands/features/mods.rs:712:7
|
712 | let mut child = command.spawn()?;
| ----^^^^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` on by default
|
unused variable: `child`:
src/commands/features/mods.rs#L712
warning: unused variable: `child`
--> src/commands/features/mods.rs:712:11
|
712 | let mut child = command.spawn()?;
| ^^^^^ help: if this is intentional, prefix it with an underscore: `_child`
|
= note: `#[warn(unused_variables)]` on by default
|
value assigned to `process_status` is never read:
src/util/process.rs#L58
warning: value assigned to `process_status` is never read
--> src/util/process.rs:58:11
|
58 | let mut process_status = None;
| ^^^^^^^^^^^^^^
|
= help: maybe it is overwritten before being read?
= note: `#[warn(unused_assignments)]` on by default
|
unused import: `BufRead`:
src/util/file.rs#L9
warning: unused import: `BufRead`
--> src/util/file.rs:9:8
|
9 | io::{BufRead, Read},
| ^^^^^^^
|
unused import: `FromBase64`:
src/util/file.rs#L5
warning: unused import: `FromBase64`
--> src/util/file.rs:5:31
|
5 | use rustc_serialize::base64::{FromBase64, ToBase64, MIME};
| ^^^^^^^^^^
|
unused import: `tauri::Manager`:
src/commands/util.rs#L2
warning: unused import: `tauri::Manager`
--> src/commands/util.rs:2:5
|
2 | use tauri::Manager;
| ^^^^^^^^^^^^^^
|
unused import: `crate::util::os::get_installed_vcc_runtime`:
src/commands/config.rs#L3
warning: unused import: `crate::util::os::get_installed_vcc_runtime`
--> src/commands/config.rs:3:5
|
3 | use crate::util::os::get_installed_vcc_runtime;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
|
redundant field names in struct initialization:
src/commands/binaries.rs#L84
warning: redundant field names in struct initialization
--> src/commands/binaries.rs:84:5
|
84 | tooling_version: tooling_version,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tooling_version`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names
= note: `#[warn(clippy::redundant_field_names)]` on by default
|
App (ubuntu-20.04)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/toolchain@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|
App (ubuntu-20.04)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions-rs/toolchain@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
App (ubuntu-20.04)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
App (ubuntu-20.04)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
App (ubuntu-20.04)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
App (ubuntu-20.04)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
App (macos-12)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/toolchain@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|
App (macos-12)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions-rs/toolchain@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
App (macos-12)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
App (macos-12)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
App (macos-12)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
App (macos-12)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
App (windows-latest)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/toolchain@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|
App (windows-latest)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions-rs/toolchain@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
App (windows-latest)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
App (windows-latest)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
App (windows-latest)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
App (windows-latest)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|