vanilla source impl and more #207
Annotations
15 errors and 84 warnings
useless conversion to the same type: `std::string::String`:
src/api/sources/mod.rs#L28
error: useless conversion to the same type: `std::string::String`
--> src/api/sources/mod.rs:28:18
|
28 | url: url.into(),
| ^^^^^^^^^^ help: consider removing `.into()`: `url`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
= note: `-D clippy::useless-conversion` implied by `-D clippy::all`
= help: to override `-D clippy::all` add `#[allow(clippy::useless_conversion)]`
|
question mark operator is useless here:
src/api/sources/modrinth/mod.rs#L29
error: question mark operator is useless here
--> src/api/sources/modrinth/mod.rs:29:9
|
29 | Ok(self.fetch_all_versions(id).await?)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing question mark and `Ok()`: `self.fetch_all_versions(id).await`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark
= note: `-D clippy::needless-question-mark` implied by `-D clippy::all`
= help: to override `-D clippy::all` add `#[allow(clippy::needless_question_mark)]`
|
methods called `into_*` usually take `self` by value:
src/api/sources/vanilla/version.rs#L37
error: methods called `into_*` usually take `self` by value
--> src/api/sources/vanilla/version.rs:37:22
|
37 | pub fn into_step(&self, ty: DownloadType) -> Option<Vec<Step>> {
| ^^^^^
|
= help: consider choosing a less ambiguous name
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention
|
redundant guard:
src/api/utils/pathdiff.rs#L52
error: redundant guard
--> src/api/utils/pathdiff.rs:52:39
|
52 | (Some(_), Some(b)) if b == Component::ParentDir => return None,
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_guards
help: try
|
52 - (Some(_), Some(b)) if b == Component::ParentDir => return None,
52 + (Some(_), Some(Component::ParentDir)) => return None,
|
|
redundant guard:
src/api/utils/pathdiff.rs#L51
error: redundant guard
--> src/api/utils/pathdiff.rs:51:39
|
51 | (Some(a), Some(b)) if b == Component::CurDir => comps.push(a),
| ^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_guards
= note: `-D clippy::redundant-guards` implied by `-D clippy::all`
= help: to override `-D clippy::all` add `#[allow(clippy::redundant_guards)]`
help: try
|
51 - (Some(a), Some(b)) if b == Component::CurDir => comps.push(a),
51 + (Some(a), Some(Component::CurDir)) => comps.push(a),
|
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/api/app/mod.rs#L79
error: this expression creates a reference which is immediately dereferenced by the compiler
--> src/api/app/mod.rs:79:51
|
79 | addons.append(&mut source.resolve(&self).await?);
| ^^^^^ help: change this to: `self`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
= note: `-D clippy::needless-borrow` implied by `-D clippy::all`
= help: to override `-D clippy::all` add `#[allow(clippy::needless_borrow)]`
|
match expression looks like `matches!` macro:
src/api/models/server/server_flavor.rs#L20
error: match expression looks like `matches!` macro
--> src/api/models/server/server_flavor.rs:20:9
|
20 | / match self {
21 | | ServerFlavor::Modded => true,
22 | | _ => false,
23 | | }
| |_________^ help: try: `matches!(self, ServerFlavor::Modded)`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro
|
match expression looks like `matches!` macro:
src/api/models/server/server_flavor.rs#L13
error: match expression looks like `matches!` macro
--> src/api/models/server/server_flavor.rs:13:9
|
13 | / match self {
14 | | ServerFlavor::Proxy => false,
15 | | _ => true,
16 | | }
| |_________^ help: try: `!matches!(self, ServerFlavor::Proxy)`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro
= note: `-D clippy::match-like-matches-macro` implied by `-D clippy::all`
= help: to override `-D clippy::all` add `#[allow(clippy::match_like_matches_macro)]`
|
methods called `into_*` usually take `self` by value:
src/api/models/mrpack/mod.rs#L31
error: methods called `into_*` usually take `self` by value
--> src/api/models/mrpack/mod.rs:31:29
|
31 | pub async fn into_addon(&self) -> Result<Addon> {
| ^^^^^
|
= help: consider choosing a less ambiguous name
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention
|
methods called `into_*` usually take `self` by value:
src/api/models/packwiz/mod.rs#L11
error: methods called `into_*` usually take `self` by value
--> src/api/models/packwiz/mod.rs:11:29
|
11 | pub async fn into_addon(&self) -> Result<Addon> {
| ^^^^^
|
= help: consider choosing a less ambiguous name
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention
= note: `-D clippy::wrong-self-convention` implied by `-D clippy::all`
= help: to override `-D clippy::all` add `#[allow(clippy::wrong_self_convention)]`
|
module has the same name as its containing module:
src/api/models/addon/mod.rs#L1
error: module has the same name as its containing module
--> src/api/models/addon/mod.rs:1:1
|
1 | mod addon;
| ^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception
= note: `-D clippy::module-inception` implied by `-D clippy::all`
= help: to override `-D clippy::all` add `#[allow(clippy::module_inception)]`
|
lint group `pedantic` has the same priority (0) as a lint:
Cargo.toml#L24
error: lint group `pedantic` has the same priority (0) as a lint
--> Cargo.toml:24:1
|
24 | pedantic = "warn"
| ^^^^^^^^ ------ has an implicit priority of 0
25 | missing_docs_in_private_items = "allow"
| ----------------------------- has the same priority as this lint
|
= note: the order of the lints in the table is ignored by Cargo
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lint_groups_priority
help: to have lints override the group set `pedantic` to a lower priority
|
24 | pedantic = { level = "warn", priority = -1 }
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
lint group `all` has the same priority (0) as a lint:
Cargo.toml#L23
error: lint group `all` has the same priority (0) as a lint
--> Cargo.toml:23:1
|
23 | all = "deny"
| ^^^ ------ has an implicit priority of 0
24 | pedantic = "warn"
25 | missing_docs_in_private_items = "allow"
| ----------------------------- has the same priority as this lint
|
= note: the order of the lints in the table is ignored by Cargo
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lint_groups_priority
= note: `-D clippy::lint-groups-priority` implied by `-D clippy::all`
= help: to override `-D clippy::all` add `#[allow(clippy::lint_groups_priority)]`
help: to have lints override the group set `all` to a lower priority
|
23 | all = { level = "deny", priority = -1 }
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
redundant field names in struct initialization:
src/api/sources/vanilla/version.rs#L46
error: redundant field names in struct initialization
--> src/api/sources/vanilla/version.rs:46:17
|
46 | filename: filename,
| ^^^^^^^^^^^^^^^^^^ help: replace it with: `filename`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names
= note: `-D clippy::redundant-field-names` implied by `-D clippy::all`
= help: to override `-D clippy::all` add `#[allow(clippy::redundant_field_names)]`
|
clippy
Clippy had exited with the 101 exit code
|
build (ubuntu-latest)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3, actions/upload-artifact@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
unused `async` for function with no await statements:
src/commands/init.rs#L14
warning: unused `async` for function with no await statements
--> src/commands/init.rs:14:1
|
14 | / pub async fn run(mut app: App, args: Args) -> Result<()> {
15 | |
16 | |
17 | | Ok(())
18 | | }
| |_^
|
= help: consider removing the `async` from this function
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_async
|
unused `async` for function with no await statements:
src/api/sources/mod.rs#L10
warning: unused `async` for function with no await statements
--> src/api/sources/mod.rs:10:1
|
10 | / pub async fn resolve_steps_for_url(
11 | | app: &App,
12 | | url: impl Into<String>,
13 | | filename: Option<String>,
... |
33 | | ])
34 | | }
| |_^
|
= help: consider removing the `async` from this function
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_async
|
unused `async` for function with no await statements:
src/api/utils/accessor.rs#L18
warning: unused `async` for function with no await statements
--> src/api/utils/accessor.rs:18:5
|
18 | / pub async fn dir(&self) -> Result<Vec<String>> {
19 | | match self {
20 | | Accessor::Zip(zip) => Ok(zip.file_names().map(ToOwned::to_owned).collect()),
21 | | Accessor::Local(path) => Ok(path.read_dir()?
... |
26 | | }
27 | | }
| |_____^
|
= help: consider removing the `async` from this function
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_async
|
unused `async` for function with no await statements:
src/api/app/actions/init/mod.rs#L27
warning: unused `async` for function with no await statements
--> src/api/app/actions/init/mod.rs:27:5
|
27 | / pub async fn init_network(&mut self) -> Result<()> {
28 | | intro("initializing network")?;
29 | |
30 | | let name: String = input("Name of the network?")
... |
39 | | Ok(())
40 | | }
| |_____^
|
= help: consider removing the `async` from this function
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_async
|
unused `async` for function with no await statements:
src/api/app/actions/init/mod.rs#L10
warning: unused `async` for function with no await statements
--> src/api/app/actions/init/mod.rs:10:5
|
10 | / pub async fn init_server(&mut self) -> Result<()> {
11 | | intro("initializing server")?;
12 | |
13 | | let name: String = input("Name of the server?")
... |
24 | | Ok(())
25 | | }
| |_____^
|
= help: consider removing the `async` from this function
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_async
|
unused `async` for function with no await statements:
src/api/models/mrpack/mod.rs#L31
warning: unused `async` for function with no await statements
--> src/api/models/mrpack/mod.rs:31:5
|
31 | / pub async fn into_addon(&self) -> Result<Addon> {
32 | | todo!()
33 | | }
| |_____^
|
= help: consider removing the `async` from this function
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_async
|
unused `async` for function with no await statements:
src/api/models/packwiz/mod.rs#L11
warning: unused `async` for function with no await statements
--> src/api/models/packwiz/mod.rs:11:5
|
11 | / pub async fn into_addon(&self) -> Result<Addon> {
12 | | todo!()
13 | | }
| |_____^
|
= help: consider removing the `async` from this function
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_async
|
unused `async` for function with no await statements:
src/api/models/addon/addon.rs#L23
warning: unused `async` for function with no await statements
--> src/api/models/addon/addon.rs:23:5
|
23 | / async fn resolve_steps(&self) -> Result<Vec<Step>> {
24 | | Ok(vec![])
25 | | }
| |_____^
|
= help: consider removing the `async` from this function
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_async
|
unused `async` for function with no await statements:
src/api/models/source.rs#L25
warning: unused `async` for function with no await statements
--> src/api/models/source.rs:25:5
|
25 | / pub async fn resolve(&self, app: &App) -> Result<Vec<Addon>> {
26 | | match self {
27 | | Source::File { path } => {
28 | | Ok(vec![])
... |
38 | | }
39 | | }
| |_____^
|
= help: consider removing the `async` from this function
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_async
|
unused `async` for function with no await statements:
src/api/models/step.rs#L44
warning: unused `async` for function with no await statements
--> src/api/models/step.rs:44:5
|
44 | / async fn run(&self) -> Result<StepResult> {
45 | | Ok(StepResult::Continue)
46 | | }
| |_____^
|
= help: consider removing the `async` from this function
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_async
= note: `-W clippy::unused-async` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::unused_async)]`
|
wildcard matches only a single variant and will also match any future added variants:
src/api/sources/vanilla/mod.rs#L30
warning: wildcard matches only a single variant and will also match any future added variants
--> src/api/sources/vanilla/mod.rs:30:13
|
30 | _ => bail!("You cant have both smh"),
| ^ help: try: `Environment::Both`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wildcard_for_single_variants
= note: `-W clippy::match-wildcard-for-single-variants` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::match_wildcard_for_single_variants)]`
|
item in documentation is missing backticks:
src/api/sources/vanilla/version.rs#L201
warning: item in documentation is missing backticks
--> src/api/sources/vanilla/version.rs:201:10
|
201 | /// (AssetIndex only) The size of the game version's assets
| ^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown
help: try
|
201 | /// (`AssetIndex` only) The size of the game version's assets
| ~~~~~~~~~~~~
|
item in documentation is missing backticks:
src/api/sources/vanilla/version.rs#L199
warning: item in documentation is missing backticks
--> src/api/sources/vanilla/version.rs:199:10
|
199 | /// (AssetIndex only) The game version ID the assets are for
| ^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown
help: try
|
199 | /// (`AssetIndex` only) The game version ID the assets are for
| ~~~~~~~~~~~~
|
item in documentation is missing backticks:
src/api/sources/vanilla/version.rs#L171
warning: item in documentation is missing backticks
--> src/api/sources/vanilla/version.rs:171:13
|
171 | /// The HashMap key specifies a classifier as additional information for downloading files
| ^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown
help: try
|
171 | /// The `HashMap` key specifies a classifier as additional information for downloading files
| ~~~~~~~~~
|
possible intra-doc link using quotes instead of backticks:
src/api/sources/vanilla/version.rs#L109
warning: possible intra-doc link using quotes instead of backticks
--> src/api/sources/vanilla/version.rs:109:25
|
109 | /// "exclude": ["META-INF/"],
| ^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_link_with_quotes
= note: `-W clippy::doc-link-with-quotes` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::doc_link_with_quotes)]`
|
unnecessary `!=` operation:
src/api/utils/pathdiff.rs#L31
warning: unnecessary `!=` operation
--> src/api/utils/pathdiff.rs:31:5
|
31 | / if path.is_absolute() != base.is_absolute() {
32 | | if path.is_absolute() {
33 | | Some(PathBuf::from(path))
34 | | } else {
... |
64 | | Some(comps.iter().map(|c| c.as_os_str()).collect())
65 | | }
| |_____^
|
= help: change to `==` and swap the blocks of the `if`/`else`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_not_else
= note: `-W clippy::if-not-else` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::if_not_else)]`
|
usage of wildcard import:
src/api/utils/pathdiff.rs#L3
warning: usage of wildcard import
--> src/api/utils/pathdiff.rs:3:5
|
3 | use std::path::*;
| ^^^^^^^^^^^^ help: try: `std::path::{Component, Path, PathBuf}`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_imports
|
you should put bare URLs between `<`/`>` or make a proper Markdown link:
src/api/utils/pathdiff.rs#L1
warning: you should put bare URLs between `<`/`>` or make a proper Markdown link
--> src/api/utils/pathdiff.rs:1:5
|
1 | //! https://github.com/Manishearth/pathdiff
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown
= note: `-W clippy::doc-markdown` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::doc_markdown)]`
|
redundant closure:
src/api/utils/accessor.rs#L22
warning: redundant closure
--> src/api/utils/accessor.rs:22:29
|
22 | .filter_map(|r| r.ok())
| ^^^^^^^^^^ help: replace the closure with the method itself: `std::result::Result::ok`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls
= note: `-W clippy::redundant-closure-for-method-calls` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::redundant_closure_for_method_calls)]`
|
this match arm has an identical body to another arm:
src/api/models/server/server_flavor.rs#L30
warning: this match arm has an identical body to another arm
--> src/api/models/server/server_flavor.rs:30:13
|
30 | ServerFlavor::Patched => true,
| ---------------------^^^^^^^^
| |
| help: try merging the arm patterns: `ServerFlavor::Patched | ServerFlavor::Proxy`
|
= help: or try changing either arm body
note: other arm here
--> src/api/models/server/server_flavor.rs:31:13
|
31 | ServerFlavor::Proxy => true,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_same_arms
|
this match arm has an identical body to another arm:
src/api/models/server/server_flavor.rs#L29
warning: this match arm has an identical body to another arm
--> src/api/models/server/server_flavor.rs:29:13
|
29 | ServerFlavor::Modded => false,
| --------------------^^^^^^^^^
| |
| help: try merging the arm patterns: `ServerFlavor::Modded | ServerFlavor::Vanilla`
|
= help: or try changing either arm body
note: other arm here
--> src/api/models/server/server_flavor.rs:28:13
|
28 | ServerFlavor::Vanilla => false,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_same_arms
|
this argument (1 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte):
src/api/models/server/server_flavor.rs#L26
warning: this argument (1 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte)
--> src/api/models/server/server_flavor.rs:26:29
|
26 | pub fn supports_plugins(&self) -> bool {
| ^^^^^ help: consider passing by value instead: `self`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
|
this argument (1 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte):
src/api/models/server/server_flavor.rs#L19
warning: this argument (1 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte)
--> src/api/models/server/server_flavor.rs:19:26
|
19 | pub fn supports_mods(&self) -> bool {
| ^^^^^ help: consider passing by value instead: `self`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
|
this argument (1 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte):
src/api/models/server/server_flavor.rs#L12
warning: this argument (1 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte)
--> src/api/models/server/server_flavor.rs:12:31
|
12 | pub fn supports_datapacks(&self) -> bool {
| ^^^^^ help: consider passing by value instead: `self`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
= note: `-W clippy::trivially-copy-pass-by-ref` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::trivially_copy_pass_by_ref)]`
|
usage of wildcard import:
src/api/models/server/server_type.rs#L2
warning: usage of wildcard import
--> src/api/models/server/server_type.rs:2:5
|
2 | use crate::api::utils::serde::*;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `crate::api::utils::serde::str_latest`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_imports
= note: `-W clippy::wildcard-imports` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::wildcard_imports)]`
|
field name starts with the struct's name:
src/api/models/addon/addon.rs#L18
warning: field name starts with the struct's name
--> src/api/models/addon/addon.rs:18:5
|
18 | pub addon_type: AddonType,
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#struct_field_names
= note: `-W clippy::struct-field-names` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::struct_field_names)]`
|
this match arm has an identical body to another arm:
src/api/models/modpack_source.rs#L30
warning: this match arm has an identical body to another arm
--> src/api/models/modpack_source.rs:30:13
|
30 | Self::Remote { modpack_type, .. } => *modpack_type,
| ---------------------------------^^^^^^^^^^^^^^^^^
| |
| help: try merging the arm patterns: `Self::Remote { modpack_type, .. } | Self::Local { modpack_type, .. }`
|
= help: or try changing either arm body
note: other arm here
--> src/api/models/modpack_source.rs:29:13
|
29 | Self::Local { modpack_type, .. } => *modpack_type,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_same_arms
= note: `-W clippy::match-same-arms` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::match_same_arms)]`
|
method `wait_ratelimit` is never used:
src/api/sources/modrinth/ratelimit.rs#L7
warning: method `wait_ratelimit` is never used
--> src/api/sources/modrinth/ratelimit.rs:7:14
|
6 | pub trait ModrinthWaitRatelimit<T> {
| --------------------- method in this trait
7 | async fn wait_ratelimit(self) -> Result<T>;
| ^^^^^^^^^^^^^^
|
multiple methods are never used:
src/api/sources/modrinth/mod.rs#L15
warning: multiple methods are never used
--> src/api/sources/modrinth/mod.rs:15:18
|
14 | impl<'a> ModrinthAPI<'a> {
| ------------------------ methods in this implementation
15 | pub async fn fetch_api<T: DeserializeOwned>(&self, url: String) -> Result<T> {
| ^^^^^^^^^
...
19 | pub async fn fetch_project(&self, id: &str) -> Result<ModrinthProject> {
| ^^^^^^^^^^^^^
...
23 | pub async fn fetch_all_versions(&self, id: &str) -> Result<Vec<ModrinthVersion>> {
| ^^^^^^^^^^^^^^^^^^
...
28 | pub async fn fetch_versions(&self, id: &str) -> Result<Vec<ModrinthVersion>> {
| ^^^^^^^^^^^^^^
...
32 | pub async fn fetch_version(&self, id: &str, version: &str) -> Result<ModrinthVersion> {
| ^^^^^^^^^^^^^
...
45 | pub async fn fetch_file(
| ^^^^^^^^^^
...
82 | pub async fn version_from_hash(&self, hash: &str, algo: &str) -> Result<ModrinthVersion> {
| ^^^^^^^^^^^^^^^^^
...
94 | pub async fn resolve_steps(&self, id: &str, version: &str) -> Result<Vec<Step>> {
| ^^^^^^^^^^^^^
|
static `API_URL` is never used:
src/api/sources/modrinth/mod.rs#L12
warning: static `API_URL` is never used
--> src/api/sources/modrinth/mod.rs:12:8
|
12 | static API_URL: &str = "https://api.modrinth.com/v2";
| ^^^^^^^
|
struct `ModrinthAPI` is never constructed:
src/api/sources/modrinth/mod.rs#L10
warning: struct `ModrinthAPI` is never constructed
--> src/api/sources/modrinth/mod.rs:10:12
|
10 | pub struct ModrinthAPI<'a>(pub &'a App);
| ^^^^^^^^^^^
|
function `dollar_repl` is never used:
src/api/sources/vanilla/rulematcher.rs#L182
warning: function `dollar_repl` is never used
--> src/api/sources/vanilla/rulematcher.rs:182:4
|
182 | fn dollar_repl<F>(input: &str, replacer: F) -> String
| ^^^^^^^^^^^
|
multiple associated items are never used:
src/api/sources/vanilla/rulematcher.rs#L17
warning: multiple associated items are never used
--> src/api/sources/vanilla/rulematcher.rs:17:12
|
14 | impl PistonRuleMatcher {
| ---------------------- associated items in this implementation
...
17 | pub fn new(os_name: String, os_arch: String, os_version: String) -> Self {
| ^^^
...
30 | pub fn empty() -> Self {
| ^^^^^
...
44 | pub fn from_os() -> Self {
| ^^^^^^^
...
68 | pub fn should_download_library(&self, library: &PistonLibrary) -> bool {
| ^^^^^^^^^^^^^^^^^^^^^^^
...
76 | pub fn get_native_library(&self, library: &PistonLibrary) -> Option<PistonFile> {
| ^^^^^^^^^^^^^^^^^^
...
90 | pub fn match_rules(&self, rules: &Vec<PistonRule>) -> bool {
| ^^^^^^^^^^^
...
104 | pub fn match_rule(&self, rule: &PistonRule) -> bool {
| ^^^^^^^^^^
...
114 | pub fn match_constraint(&self, constraint: &PistonRuleConstraints) -> bool {
| ^^^^^^^^^^^^^^^^
...
140 | pub fn build_args(
| ^^^^^^^^^^
...
167 | pub fn process_string(&self, map: &HashMap<String, String>, input: &str) -> String {
| ^^^^^^^^^^^^^^
|
struct `PistonRuleMatcher` is never constructed:
src/api/sources/vanilla/rulematcher.rs#L9
warning: struct `PistonRuleMatcher` is never constructed
--> src/api/sources/vanilla/rulematcher.rs:9:12
|
9 | pub struct PistonRuleMatcher {
| ^^^^^^^^^^^^^^^^^
|
method `into_step` is never used:
src/api/sources/vanilla/version.rs#L37
warning: method `into_step` is never used
--> src/api/sources/vanilla/version.rs:37:12
|
36 | impl VersionInfo {
| ---------------- method in this implementation
37 | pub fn into_step(&self, ty: DownloadType) -> Option<Vec<Step>> {
| ^^^^^^^^^
|
method `find` is never used:
src/api/sources/vanilla/manifest.rs#L15
warning: method `find` is never used
--> src/api/sources/vanilla/manifest.rs:15:12
|
12 | impl VersionManifest {
| -------------------- method in this implementation
...
15 | pub fn find(&self, id: &str) -> Option<VersionIndex> {
| ^^^^
|
constant `VERSION_MANIFEST_URL` is never used:
src/api/sources/vanilla/manifest.rs#L3
warning: constant `VERSION_MANIFEST_URL` is never used
--> src/api/sources/vanilla/manifest.rs:3:11
|
3 | pub const VERSION_MANIFEST_URL: &str = "https://piston-meta.mojang.com/mc/game/version_manifest_v2.json";
| ^^^^^^^^^^^^^^^^^^^^
|
methods `get_url` and `get_path` are never used:
src/api/sources/vanilla/assets.rs#L21
warning: methods `get_url` and `get_path` are never used
--> src/api/sources/vanilla/assets.rs:21:12
|
18 | impl MCAsset {
| ------------ methods in this implementation
...
21 | pub fn get_url(&self) -> String {
| ^^^^^^^
...
27 | pub fn get_path(&self) -> String {
| ^^^^^^^^
|
constant `RESOURCES_URL` is never used:
src/api/sources/vanilla/assets.rs#L4
warning: constant `RESOURCES_URL` is never used
--> src/api/sources/vanilla/assets.rs:4:11
|
4 | pub const RESOURCES_URL: &str = "https://resources.download.minecraft.net";
| ^^^^^^^^^^^^^
|
methods `fetch_manifest`, `fetch_latest_mcver`, and `resolve_steps` are never used:
src/api/sources/vanilla/mod.rs#L15
warning: methods `fetch_manifest`, `fetch_latest_mcver`, and `resolve_steps` are never used
--> src/api/sources/vanilla/mod.rs:15:18
|
14 | impl<'a> VanillaAPI<'a> {
| ----------------------- methods in this implementation
15 | pub async fn fetch_manifest(&self) -> Result<VersionManifest> {
| ^^^^^^^^^^^^^^
...
19 | pub async fn fetch_latest_mcver(&self) -> Result<String> {
| ^^^^^^^^^^^^^^^^^^
...
26 | pub async fn resolve_steps(&self, version: &str, env: Environment) -> Result<Vec<Step>> {
| ^^^^^^^^^^^^^
|
struct `VanillaAPI` is never constructed:
src/api/sources/vanilla/mod.rs#L12
warning: struct `VanillaAPI` is never constructed
--> src/api/sources/vanilla/mod.rs:12:12
|
12 | pub struct VanillaAPI<'a>(pub &'a App);
| ^^^^^^^^^^
|
function `resolve_steps_for_url` is never used:
src/api/sources/mod.rs#L10
warning: function `resolve_steps_for_url` is never used
--> src/api/sources/mod.rs:10:14
|
10 | pub async fn resolve_steps_for_url(
| ^^^^^^^^^^^^^^^^^^^^^
|
function `diff_paths` is never used:
src/api/utils/pathdiff.rs#L23
warning: function `diff_paths` is never used
--> src/api/utils/pathdiff.rs:23:8
|
23 | pub fn diff_paths<P, B>(path: P, base: B) -> Option<PathBuf>
| ^^^^^^^^^^
|
function `get_filename_from_url` is never used:
src/api/utils/url.rs#L1
warning: function `get_filename_from_url` is never used
--> src/api/utils/url.rs:1:8
|
1 | pub fn get_filename_from_url(url: &str) -> String {
| ^^^^^^^^^^^^^^^^^^^^^
|
methods `dir` and `json` are never used:
src/api/utils/accessor.rs#L18
warning: methods `dir` and `json` are never used
--> src/api/utils/accessor.rs:18:18
|
17 | impl Accessor {
| ------------- methods in this implementation
18 | pub async fn dir(&self) -> Result<Vec<String>> {
| ^^^
...
29 | pub async fn json<T: DeserializeOwned>(&mut self, app: &App, path: &str) -> Result<T> {
| ^^^^
|
enum `Accessor` is never used:
src/api/utils/accessor.rs#L11
warning: enum `Accessor` is never used
--> src/api/utils/accessor.rs:11:10
|
11 | pub enum Accessor {
| ^^^^^^^^
|
trait `ReadSeek` is never used:
src/api/utils/accessor.rs#L9
warning: trait `ReadSeek` is never used
--> src/api/utils/accessor.rs:9:11
|
9 | pub trait ReadSeek: std::io::Read + Seek {}
| ^^^^^^^^
|
methods `init_server` and `init_network` are never used:
src/api/app/actions/init/mod.rs#L10
warning: methods `init_server` and `init_network` are never used
--> src/api/app/actions/init/mod.rs:10:18
|
9 | impl App {
| -------- methods in this implementation
10 | pub async fn init_server(&mut self) -> Result<()> {
| ^^^^^^^^^^^
...
27 | pub async fn init_network(&mut self) -> Result<()> {
| ^^^^^^^^^^^^
|
methods `http_get_json` and `collect_addons` are never used:
src/api/app/mod.rs#L42
warning: methods `http_get_json` and `collect_addons` are never used
--> src/api/app/mod.rs:42:18
|
27 | impl App {
| -------- methods in this implementation
...
42 | pub async fn http_get_json<T: DeserializeOwned>(&self, url: impl IntoUrl) -> Result<T> {
| ^^^^^^^^^^^^^
...
72 | pub async fn collect_addons(&self) -> Result<Vec<Addon>> {
| ^^^^^^^^^^^^^^
|
struct `Lockfile` is never constructed:
src/api/models/lockfile/mod.rs#L1
warning: struct `Lockfile` is never constructed
--> src/api/models/lockfile/mod.rs:1:12
|
1 | pub struct Lockfile {
| ^^^^^^^^
|
methods `supports_datapacks`, `supports_mods`, and `supports_plugins` are never used:
src/api/models/server/server_flavor.rs#L12
warning: methods `supports_datapacks`, `supports_mods`, and `supports_plugins` are never used
--> src/api/models/server/server_flavor.rs:12:12
|
11 | impl ServerFlavor {
| ----------------- methods in this implementation
12 | pub fn supports_datapacks(&self) -> bool {
| ^^^^^^^^^^^^^^^^^^
...
19 | pub fn supports_mods(&self) -> bool {
| ^^^^^^^^^^^^^
...
26 | pub fn supports_plugins(&self) -> bool {
| ^^^^^^^^^^^^^^^^
|
method `into_addon` is never used:
src/api/models/mrpack/mod.rs#L31
warning: method `into_addon` is never used
--> src/api/models/mrpack/mod.rs:31:18
|
30 | impl MRPackFile {
| --------------- method in this implementation
31 | pub async fn into_addon(&self) -> Result<Addon> {
| ^^^^^^^^^^
|
function `resolve_mrpack_addons` is never used:
src/api/models/mrpack/mod.rs#L15
warning: function `resolve_mrpack_addons` is never used
--> src/api/models/mrpack/mod.rs:15:14
|
15 | pub async fn resolve_mrpack_addons(
| ^^^^^^^^^^^^^^^^^^^^^
|
constant `MRPACK_INDEX_FILE` is never used:
src/api/models/mrpack/mod.rs#L9
warning: constant `MRPACK_INDEX_FILE` is never used
--> src/api/models/mrpack/mod.rs:9:11
|
9 | pub const MRPACK_INDEX_FILE: &str = "modrinth.index.json";
| ^^^^^^^^^^^^^^^^^
|
method `into_addon` is never used:
src/api/models/packwiz/mod.rs#L11
warning: method `into_addon` is never used
--> src/api/models/packwiz/mod.rs:11:18
|
10 | impl PackwizMod {
| --------------- method in this implementation
11 | pub async fn into_addon(&self) -> Result<Addon> {
| ^^^^^^^^^^
|
method `resolve_steps` is never used:
src/api/models/addon/addon.rs#L23
warning: method `resolve_steps` is never used
--> src/api/models/addon/addon.rs:23:14
|
22 | impl Addon {
| ---------- method in this implementation
23 | async fn resolve_steps(&self) -> Result<Vec<Step>> {
| ^^^^^^^^^^^^^
|
method `resolve` is never used:
src/api/models/source.rs#L25
warning: method `resolve` is never used
--> src/api/models/source.rs:25:18
|
24 | impl Source {
| ----------- method in this implementation
25 | pub async fn resolve(&self, app: &App) -> Result<Vec<Addon>> {
| ^^^^^^^
|
method `run` is never used:
src/api/models/step.rs#L44
warning: method `run` is never used
--> src/api/models/step.rs:44:14
|
43 | impl Step {
| --------- method in this implementation
44 | async fn run(&self) -> Result<StepResult> {
| ^^^
|
enum `StepResult` is never used:
src/api/models/step.rs#L35
warning: enum `StepResult` is never used
--> src/api/models/step.rs:35:10
|
35 | pub enum StepResult {
| ^^^^^^^^^^
|
methods `accessor` and `modpack_type` are never used:
src/api/models/modpack_source.rs#L20
warning: methods `accessor` and `modpack_type` are never used
--> src/api/models/modpack_source.rs:20:12
|
19 | impl ModpackSource {
| ------------------ methods in this implementation
20 | pub fn accessor(&self) -> Result<Accessor> {
| ^^^^^^^^
...
27 | pub fn modpack_type(&self) -> ModpackType {
| ^^^^^^^^^^^^
|
= note: `#[warn(dead_code)]` on by default
|
variable does not need to be mutable:
src/commands/init.rs#L14
warning: variable does not need to be mutable
--> src/commands/init.rs:14:18
|
14 | pub async fn run(mut app: App, args: Args) -> Result<()> {
| ----^^^
| |
| help: remove this `mut`
|
unused variable: `args`:
src/commands/init.rs#L14
warning: unused variable: `args`
--> src/commands/init.rs:14:32
|
14 | pub async fn run(mut app: App, args: Args) -> Result<()> {
| ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
|
unused variable: `app`:
src/commands/init.rs#L14
warning: unused variable: `app`
--> src/commands/init.rs:14:22
|
14 | pub async fn run(mut app: App, args: Args) -> Result<()> {
| ^^^ help: if this is intentional, prefix it with an underscore: `_app`
|
unused variable: `app`:
src/api/sources/mod.rs#L11
warning: unused variable: `app`
--> src/api/sources/mod.rs:11:5
|
11 | app: &App,
| ^^^ help: if this is intentional, prefix it with an underscore: `_app`
|
variable does not need to be mutable:
src/api/app/actions/init/mod.rs#L33
warning: variable does not need to be mutable
--> src/api/app/actions/init/mod.rs:33:13
|
33 | let mut nw = Network {
| ----^^
| |
| help: remove this `mut`
|
variable does not need to be mutable:
src/api/app/actions/init/mod.rs#L16
warning: variable does not need to be mutable
--> src/api/app/actions/init/mod.rs:16:13
|
16 | let mut server = Server {
| ----^^^^^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` on by default
|
unused variable: `modpack`:
src/api/models/source.rs#L35
warning: unused variable: `modpack`
--> src/api/models/source.rs:35:31
|
35 | Source::Modpack { modpack } => {
| ^^^^^^^ help: try ignoring the field: `modpack: _`
|
unused variable: `path`:
src/api/models/source.rs#L31
warning: unused variable: `path`
--> src/api/models/source.rs:31:30
|
31 | Source::Folder { path } => {
| ^^^^ help: try ignoring the field: `path: _`
|
unused variable: `path`:
src/api/models/source.rs#L27
warning: unused variable: `path`
--> src/api/models/source.rs:27:28
|
27 | Source::File { path } => {
| ^^^^ help: try ignoring the field: `path: _`
|
unused variable: `app`:
src/api/models/source.rs#L25
warning: unused variable: `app`
--> src/api/models/source.rs:25:33
|
25 | pub async fn resolve(&self, app: &App) -> Result<Vec<Addon>> {
| ^^^ help: if this is intentional, prefix it with an underscore: `_app`
|
= note: `#[warn(unused_variables)]` on by default
|
unused imports: `assets::*`, `rulematcher::*`:
src/api/sources/vanilla/mod.rs#L10
warning: unused imports: `assets::*`, `rulematcher::*`
--> src/api/sources/vanilla/mod.rs:10:16
|
10 | pub use self::{assets::*, manifest::*, version::*, rulematcher::*};
| ^^^^^^^^^ ^^^^^^^^^^^^^^
|
binding's name is too similar to existing binding:
src/api/utils/pathdiff.rs#L39
warning: binding's name is too similar to existing binding
--> src/api/utils/pathdiff.rs:39:17
|
39 | let mut itb = base.components();
| ^^^
|
note: existing binding defined here
--> src/api/utils/pathdiff.rs:38:17
|
38 | let mut ita = path.components();
| ^^^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names
= note: `-W clippy::similar-names` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::similar_names)]`
|
unused import: `std::collections::HashMap`:
src/api/utils/hashing.rs#L1
warning: unused import: `std::collections::HashMap`
--> src/api/utils/hashing.rs:1:5
|
1 | use std::collections::HashMap;
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `init::*`:
src/api/app/actions/mod.rs#L5
warning: unused import: `init::*`
--> src/api/app/actions/mod.rs:5:9
|
5 | pub use init::*;
| ^^^^^^^
|
unused import: `build::*`:
src/api/app/actions/mod.rs#L4
warning: unused import: `build::*`
--> src/api/app/actions/mod.rs:4:9
|
4 | pub use build::*;
| ^^^^^^^^
|
unused import: `Url`:
src/api/app/mod.rs#L4
warning: unused import: `Url`
--> src/api/app/mod.rs:4:24
|
4 | use reqwest::{IntoUrl, Url};
| ^^^
|
unused import: `server_flavor::*`:
src/api/models/server/mod.rs#L9
warning: unused import: `server_flavor::*`
--> src/api/models/server/mod.rs:9:9
|
9 | pub use server_flavor::*;
| ^^^^^^^^^^^^^^^^
|
unused import: `server_type::*`:
src/api/models/server/mod.rs#L8
warning: unused import: `server_type::*`
--> src/api/models/server/mod.rs:8:9
|
8 | pub use server_type::*;
| ^^^^^^^^^^^^^^
|
unused import: `packwiz_pack::*`:
src/api/models/packwiz/mod.rs#L5
warning: unused import: `packwiz_pack::*`
--> src/api/models/packwiz/mod.rs:5:9
|
5 | pub use packwiz_pack::*;
| ^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
|
clippy
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3, actions-rs/clippy-check@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
clippy
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/clippy-check@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|
build (windows-latest)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3, actions/upload-artifact@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
Deprecation notice: v1, v2, and v3 of the artifact actions
The following artifacts were uploaded using a version of actions/upload-artifact that is scheduled for deprecation: "mcman-ubuntu-latest", "mcman-windows-latest".
Please update your workflow to use v4 of the artifact actions.
Learn more: https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/
|
Artifacts
Produced during runtime
Name | Size | |
---|---|---|
mcman-ubuntu-latest
Expired
|
1.78 MB |
|
mcman-windows-latest
Expired
|
1.7 MB |
|