Skip to content

refactor: simplify imports and other minor optimizations #257

refactor: simplify imports and other minor optimizations

refactor: simplify imports and other minor optimizations #257

Triggered via push September 23, 2024 15:41
Status Failure
Total duration 4m 24s
Artifacts 2

build.yml

on: push
Matrix: build
Fit to window
Zoom out
Zoom in

Annotations

11 errors and 120 warnings
large size difference between variants: src/api/ws/msg.rs#L21
error: large size difference between variants --> src/api/ws/msg.rs:21:1 | 21 | / pub enum MsgOut { 22 | | / Connected { 23 | | | version: String, 24 | | | }, | | |_____- the second-largest variant contains at least 24 bytes 25 | | 26 | | / AppInfo { 27 | | | server: Option<Server>, 28 | | | network: Option<Network>, 29 | | | }, | | |_____- the largest variant contains at least 760 bytes 30 | | } | |___^ the entire enum is at least 760 bytes | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant = note: `-D clippy::large-enum-variant` implied by `-D clippy::all` = help: to override `-D clippy::all` add `#[allow(clippy::large_enum_variant)]` help: consider boxing the large fields to reduce the total size of the enum | 27 | server: Box<Option<Server>>, | ~~~~~~~~~~~~~~~~~~~
methods called `into_*` usually take `self` by value: src/api/sources/vanilla/mod.rs#L20
error: methods called `into_*` usually take `self` by value --> src/api/sources/vanilla/mod.rs:20:22 | 20 | 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
methods called `into_*` usually take `self` by value: src/api/models/packwiz/mod.rs#L78
error: methods called `into_*` usually take `self` by value --> src/api/models/packwiz/mod.rs:78:29 | 78 | pub async fn into_addon(&self, app: &App, target: AddonTarget) -> 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/mrpack/mod.rs#L34
error: methods called `into_*` usually take `self` by value --> src/api/models/mrpack/mod.rs:34:29 | 34 | 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)]`
name `HTML` contains a capitalized acronym: src/api/models/markdown/mod.rs#L14
error: name `HTML` contains a capitalized acronym --> src/api/models/markdown/mod.rs:14:5 | 14 | HTML, | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Html` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms
name `ASCII` contains a capitalized acronym: src/api/models/markdown/mod.rs#L13
error: name `ASCII` contains a capitalized acronym --> src/api/models/markdown/mod.rs:13:5 | 13 | ASCII, | ^^^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Ascii` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms = note: `-D clippy::upper-case-acronyms` implied by `-D clippy::all` = help: to override `-D clippy::all` add `#[allow(clippy::upper_case_acronyms)]`
this expression creates a reference which is immediately dereferenced by the compiler: src/api/models/markdown/render.rs#L10
error: this expression creates a reference which is immediately dereferenced by the compiler --> src/api/models/markdown/render.rs:10:27 | 10 | self.table_addons(&list, self.output_type) | ^^^^^ help: change this to: `list` | = 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)]`
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 ... 28 | struct_excessive_bools = "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 ... 28 | struct_excessive_bools = "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 } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
clippy
Clippy had exited with the 101 exit code
unused `async` for function with no await statements: src/commands/update.rs#L10
warning: unused `async` for function with no await statements --> src/commands/update.rs:10:1 | 10 | / pub async fn run(app: Arc<App>, args: Args) -> Result<()> { 11 | | println!("{:#?}", git::version_check()); 12 | | 13 | | Ok(()) 14 | | } | |_^ | = 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/commands/migrate.rs#L71
warning: unused `async` for function with no await statements --> src/commands/migrate.rs:71:1 | 71 | / pub async fn migrate_server() -> Result<()> { 72 | | let legacy_server = read_toml::<LegacyServer>(&PathBuf::from("./server.toml")) 73 | | .with_context(|| "Reading server.toml")?; ... | 180 | | Ok(()) 181 | | } | |_^ | = 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/commands/markdown/print.rs#L10
warning: unused `async` for function with no await statements --> src/commands/markdown/print.rs:10:1 | 10 | / pub async fn run(app: Arc<App>, args: Args) -> Result<()> { 11 | | todo!(); 12 | | 13 | | Ok(()) 14 | | } | |_^ | = 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/commands/export/packwiz.rs#L10
warning: unused `async` for function with no await statements --> src/commands/export/packwiz.rs:10:1 | 10 | / pub async fn run(app: Arc<App>, args: Args) -> Result<()> { 11 | | Ok(()) 12 | | } | |_^ | = 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/commands/export/mrpack.rs#L12
warning: unused `async` for function with no await statements --> src/commands/export/mrpack.rs:12:1 | 12 | / pub async fn run(app: Arc<App>, args: Args) -> Result<()> { 13 | | Ok(()) 14 | | } | |_^ | = 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/ws/mod.rs#L91
warning: unused `async` for function with no await statements --> src/api/ws/mod.rs:91:5 | 91 | / pub async fn handle_event(self: Arc<Self>, event: MsgIn) -> Result<()> { 92 | | Ok(()) 93 | | } | |_____^ | = 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/zip.rs#L51
warning: unused `async` for function with no await statements --> src/api/utils/zip.rs:51:1 | 51 | / pub async fn zip<T: Write + Seek>(writer: T, folder: &Path) -> Result<()> { 52 | | let mut archive = ZipWriter::new(writer); 53 | | 54 | | archive.set_comment(format!("generated by mcman/{APP_VERSION}")); ... | 73 | | Ok(()) 74 | | } | |_^ | = 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/zip.rs#L15
warning: unused `async` for function with no await statements --> src/api/utils/zip.rs:15:1 | 15 | / pub async fn unzip<T: Read + Seek>(reader: T, to: &Path, prefix: Option<String>) -> Result<()> { 16 | | let mut archive = ZipArchive::new(reader)?; 17 | | 18 | | let mut files = archive ... | 47 | | Ok(()) 48 | | } | |_^ | = 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#L45
warning: unused `async` for function with no await statements --> src/api/utils/accessor.rs:45:5 | 45 | / pub async fn dir(&self) -> Result<Vec<String>> { 46 | | match self { 47 | | Self::ZipLocal((_, zip)) => Ok(zip.file_names().map(ToOwned::to_owned).collect()), 48 | | Self::Local(path) => Ok(path ... | 54 | | } 55 | | } | |_____^ | = 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/spigot/mod.rs#L72
warning: unused `async` for function with no await statements --> src/api/sources/spigot/mod.rs:72:5 | 72 | / pub async fn resolve_remove_steps(&self, id: &str, version: &str) -> Result<Vec<Step>> { 73 | | Ok(vec![Step::RemoveFile(FileMeta::filename(format!( 74 | | "spigot-{}-{}.jar", 75 | | resource_id(id), 76 | | version 77 | | )))]) 78 | | } | |_____^ | = 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/spigot/mod.rs#L49
warning: unused `async` for function with no await statements --> src/api/sources/spigot/mod.rs:49:5 | 49 | / pub async fn resolve_steps(&self, id: &str, version: &str) -> Result<Vec<Step>> { 50 | | let url = format!( 51 | | "{}/resources/{}/versions/{}/download/proxy", 52 | | self.0.options.api_urls.spiget, ... | 69 | | ]) 70 | | } | |_____^ | = 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/quilt/mod.rs#L71
warning: unused `async` for function with no await statements --> src/api/sources/quilt/mod.rs:71:5 | 71 | / pub async fn resolve_steps_build( 72 | | &self, 73 | | jar_name: &str, 74 | | mc_version: &str, ... | 102 | | }]) 103 | | } | |_____^ | = 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/maven/mod.rs#L84
warning: unused `async` for function with no await statements --> src/api/sources/maven/mod.rs:84:5 | 84 | / pub async fn resolve( 85 | | &self, 86 | | url: &str, 87 | | group_id: &str, ... | 120 | | Ok((download_url, metadata)) 121 | | } | |_____^ | = 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/fabric/mod.rs#L35
warning: unused `async` for function with no await statements --> src/api/sources/fabric/mod.rs:35:5 | 35 | / pub async fn resolve_steps( 36 | | &self, 37 | | mc_version: &str, 38 | | loader: &str, ... | 80 | | Ok(steps) 81 | | } | |_____^ | = 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/buildtools/mod.rs#L65
warning: unused `async` for function with no await statements --> src/api/sources/buildtools/mod.rs:65:1 | 65 | / pub async fn resolve_compile_steps( 66 | | _app: &App, 67 | | jar_name: &str, 68 | | craftbukkit: bool, ... | 102 | | ]) 103 | | } | |_^ | = 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/buildtools/mod.rs#L40
warning: unused `async` for function with no await statements --> src/api/sources/buildtools/mod.rs:40:1 | 40 | / pub async fn resolve_remove_steps( 41 | | _app: &App, 42 | | _craftbukkit: bool, 43 | | _custom_args: &[String], ... | 48 | | )))]) 49 | | } | |_^ | = 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#L78
warning: unused `async` for function with no await statements --> src/api/models/packwiz/mod.rs:78:5 | 78 | / pub async fn into_addon(&self, app: &App, target: AddonTarget) -> Result<Addon> { 79 | | let addon_type = if let Some(update) = &self.update { 80 | | match update { 81 | | PackwizModUpdate::Modrinth { mod_id, version } => AddonType::Modrinth { ... | 107 | | Ok(addon) 108 | | } | |_____^ | = 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#L57
warning: unused `async` for function with no await statements --> src/api/models/packwiz/mod.rs:57:5 | 57 | / pub async fn from_steps(steps: &[Step]) -> Self { 58 | | todo!() 59 | | } | |_____^ | = 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#L34
warning: unused `async` for function with no await statements --> src/api/models/mrpack/mod.rs:34:5 | 34 | / pub async fn into_addon(&self) -> Result<Addon> { 35 | | Ok(Addon { 36 | | environment: self.env.as_ref().map(|e| e.clone().into()), 37 | | addon_type: AddonType::Url { ... | 45 | | }) 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
unused `async` for function with no await statements: src/api/app/actions/build/bootstrap.rs#L90
warning: unused `async` for function with no await statements --> src/api/app/actions/build/bootstrap.rs:90:5 | 90 | / pub async fn should_bootstrap_file(&self, file: &Path) -> bool { 91 | | let ext = file 92 | | .extension() 93 | | .unwrap_or_default() ... | 110 | | bootstrap_exts.contains(&ext) 111 | | } | |_____^ | = 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)]`
unnecessary `!=` operation: src/api/utils/pathdiff.rs#L72
warning: unnecessary `!=` operation --> src/api/utils/pathdiff.rs:72:5 | 72 | / if path.is_absolute() != base.is_absolute() { 73 | | if path.is_absolute() { 74 | | Some(PathBuf::from(path)) 75 | | } else { ... | 105 | | Some(comps.iter().map(|c| c.as_os_str()).collect()) 106 | | } | |_____^ | = 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
this function's return value is unnecessary: src/api/utils/logger/mod.rs#L3
warning: this function's return value is unnecessary --> src/api/utils/logger/mod.rs:3:1 | 3 | / pub fn init_logger() -> Result<()> { 4 | | env_logger::init(); 5 | | 6 | | Ok(()) 7 | | } | |_^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_wraps = note: `-W clippy::unnecessary-wraps` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::unnecessary_wraps)]` help: remove the return type... | 3 | pub fn init_logger() -> Result<()> { | ~~~~~~~~~~ help: ...and then remove returned values | 6 - Ok(()) |
case-sensitive file extension comparison: src/api/utils/accessor.rs#L34
warning: case-sensitive file extension comparison --> src/api/utils/accessor.rs:34:19 | 34 | } else if str.ends_with(".zip") || str.ends_with(".mrpack") { | ^^^^^^^^^^^^^^^^^^^^^ | = help: consider using a case-insensitive comparison instead = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#case_sensitive_file_extension_comparisons = note: `-W clippy::case-sensitive-file-extension-comparisons` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::case_sensitive_file_extension_comparisons)]` help: use std::path::Path | 34 ~ } else if std::path::Path::new(str) 35 + .extension() 36 ~ .map_or(false, |ext| ext.eq_ignore_ascii_case("zip")) || str.ends_with(".mrpack") { |
unnecessary `!=` operation: src/api/tools/java/check.rs#L10
warning: unnecessary `!=` operation --> src/api/tools/java/check.rs:10:16 | 10 | let path = if path.file_name()?.to_str()? != JAVA_BIN { | ________________^ 11 | | path.join(JAVA_BIN) 12 | | } else { 13 | | path.clone() 14 | | }; | |_____^ | = 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)]`
wildcard matches only a single variant and will also match any future added variants: src/api/sources/vanilla/mod.rs#L57
warning: wildcard matches only a single variant and will also match any future added variants --> src/api/sources/vanilla/mod.rs:57:13 | 57 | _ => 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
possible intra-doc link using quotes instead of backticks: src/api/sources/vanilla/version.rs#L87
warning: possible intra-doc link using quotes instead of backticks --> src/api/sources/vanilla/version.rs:87:25 | 87 | /// "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)]`
wildcard matches only a single variant and will also match any future added variants: src/api/sources/quilt/mod.rs#L95
warning: wildcard matches only a single variant and will also match any future added variants --> src/api/sources/quilt/mod.rs:95:13 | 95 | _ => {}, | ^ 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)]`
all fields have the same postfix: `url`: src/api/sources/curseforge/models.rs#L26
warning: all fields have the same postfix: `url` --> src/api/sources/curseforge/models.rs:26:1 | 26 | / pub struct CurseforgeModLinks { 27 | | pub website_url: String, 28 | | pub wiki_url: String, 29 | | pub issues_url: String, 30 | | pub source_url: String, 31 | | } | |_^ | = help: remove the postfixes = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#struct_field_names
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 function has too many lines (104/100): src/api/app/step/cache_check.rs#L23
warning: this function has too many lines (104/100) --> src/api/app/step/cache_check.rs:23:5 | 23 | / pub(super) async fn execute_step_cache_check( 24 | | &self, 25 | | dir: &Path, 26 | | metadata: &FileMeta, ... | 164 | | Ok(StepResult::Skip) 165 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_lines = note: `-W clippy::too-many-lines` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::too_many_lines)]`
adding items after statements is confusing, since items exist from the start of the scope: src/api/app/actions/build/bootstrap.rs#L60
warning: adding items after statements is confusing, since items exist from the start of the scope --> src/api/app/actions/build/bootstrap.rs:60:9 | 60 | const MAX_CONCURRENT_TASKS: usize = 20; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_statements = note: `-W clippy::items-after-statements` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::items_after_statements)]`
function `action_init_network` is never used: src/commands/init.rs#L77
warning: function `action_init_network` is never used --> src/commands/init.rs:77:14 | 77 | pub async fn action_init_network(app: Arc<App>, args: Args) -> Result<()> { | ^^^^^^^^^^^^^^^^^^^
method `broadcast` is never used: src/api/ws/mod.rs#L71
warning: method `broadcast` is never used --> src/api/ws/mod.rs:71:18 | 29 | impl WebsocketServer { | -------------------- method in this implementation ... 71 | pub async fn broadcast(self: Arc<Self>, event: MsgOut) -> Result<()> { | ^^^^^^^^^
field `app` is never read: src/api/ws/mod.rs#L25
warning: field `app` is never read --> src/api/ws/mod.rs:25:5 | 24 | pub struct WebsocketServer { | --------------- field in this struct 25 | app: Arc<App>, | ^^^
type alias `WebsocketStream` is never used: src/api/ws/mod.rs#L22
warning: type alias `WebsocketStream` is never used --> src/api/ws/mod.rs:22:10 | 22 | pub type WebsocketStream = SplitStream<WebSocketStream<TcpStream>>; | ^^^^^^^^^^^^^^^
function `zip` is never used: src/api/utils/zip.rs#L51
warning: function `zip` is never used --> src/api/utils/zip.rs:51:14 | 51 | pub async fn zip<T: Write + Seek>(writer: T, folder: &Path) -> Result<()> { | ^^^
function `unzip` is never used: src/api/utils/zip.rs#L15
warning: function `unzip` is never used --> src/api/utils/zip.rs:15:14 | 15 | pub async fn unzip<T: Read + Seek>(reader: T, to: &Path, prefix: Option<String>) -> Result<()> { | ^^^^^
associated function `from` is never used: src/api/utils/update_writer.rs#L26
warning: associated function `from` is never used --> src/api/utils/update_writer.rs:26:12 | 25 | impl UpdateWriter { | ----------------- associated function in this implementation 26 | pub fn from(source: &Source, relative_to: &Path) -> Result<Self> { | ^^^^
enum `UpdateWriter` is never used: src/api/utils/update_writer.rs#L19
warning: enum `UpdateWriter` is never used --> src/api/utils/update_writer.rs:19:10 | 19 | pub enum UpdateWriter { | ^^^^^^^^^^^^
method `diff_to` is never used: src/api/utils/pathdiff.rs#L8
warning: method `diff_to` is never used --> src/api/utils/pathdiff.rs:8:8 | 7 | pub trait DiffTo { | ------ method in this trait 8 | fn diff_to<P>(&self, path: P) -> Option<PathBuf> | ^^^^^^^
associated items `new` and `generate` are never used: src/api/utils/markdown/mod.rs#L18
warning: associated items `new` and `generate` are never used --> src/api/utils/markdown/mod.rs:18:12 | 14 | / impl<T> MarkdownTableGenerator<T> 15 | | where 16 | | T: Serialize + std::fmt::Debug, | |___________________________________- associated items in this implementation 17 | { 18 | pub fn new(items: Vec<T>) -> Self { | ^^^ ... 22 | pub fn generate(self) -> Result<MarkdownTable> { | ^^^^^^^^
struct `MarkdownTableGenerator` is never constructed: src/api/utils/markdown/mod.rs#L7
warning: struct `MarkdownTableGenerator` is never constructed --> src/api/utils/markdown/mod.rs:7:12 | 7 | pub struct MarkdownTableGenerator<T> | ^^^^^^^^^^^^^^^^^^^^^^
function `is_dirty` is never used: src/api/tools/git/mod.rs#L29
warning: function `is_dirty` is never used --> src/api/tools/git/mod.rs:29:8 | 29 | pub fn is_dirty() -> Result<bool> { | ^^^^^^^^
function `require_git` is never used: src/api/tools/git/mod.rs#L9
warning: function `require_git` is never used --> src/api/tools/git/mod.rs:9:8 | 9 | pub fn require_git() -> Result<()> { | ^^^^^^^^^^^
static `GIT_VERSION` is never used: src/api/tools/git/mod.rs#L7
warning: static `GIT_VERSION` is never used --> src/api/tools/git/mod.rs:7:8 | 7 | static GIT_VERSION: LazyLock<Option<String>> = LazyLock::new(version_check); | ^^^^^^^^^^^
function `dollar_repl` is never used: src/api/sources/vanilla/rulematcher.rs#L187
warning: function `dollar_repl` is never used --> src/api/sources/vanilla/rulematcher.rs:187:4 | 187 | fn dollar_repl<F>(input: &str, replacer: F) -> String | ^^^^^^^^^^^
multiple associated items are never used: src/api/sources/vanilla/rulematcher.rs#L20
warning: multiple associated items are never used --> src/api/sources/vanilla/rulematcher.rs:20:12 | 17 | impl PistonRuleMatcher { | ---------------------- associated items in this implementation ... 20 | pub fn new(os_name: String, os_arch: String, os_version: String) -> Self { | ^^^ ... 33 | pub fn empty() -> Self { | ^^^^^ ... 47 | pub fn from_os() -> Self { | ^^^^^^^ ... 71 | pub fn should_download_library(&self, library: &PistonLibrary) -> bool { | ^^^^^^^^^^^^^^^^^^^^^^^ ... 79 | pub fn get_native_library(&self, library: &PistonLibrary) -> Option<PistonFile> { | ^^^^^^^^^^^^^^^^^^ ... 93 | pub fn match_rules(&self, rules: &Vec<PistonRule>) -> bool { | ^^^^^^^^^^^ ... 107 | pub fn match_rule(&self, rule: &PistonRule) -> bool { | ^^^^^^^^^^ ... 117 | pub fn match_constraint(&self, constraint: &PistonRuleConstraints) -> bool { | ^^^^^^^^^^^^^^^^ ... 145 | pub fn build_args( | ^^^^^^^^^^ ... 172 | pub fn process_string(&self, map: &HashMap<String, String>, input: &str) -> String { | ^^^^^^^^^^^^^^
struct `PistonRuleMatcher` is never constructed: src/api/sources/vanilla/rulematcher.rs#L12
warning: struct `PistonRuleMatcher` is never constructed --> src/api/sources/vanilla/rulematcher.rs:12:12 | 12 | pub struct PistonRuleMatcher { | ^^^^^^^^^^^^^^^^^
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 `get` and `ls` are never used: src/api/sources/mcman_meta/mod.rs#L9
warning: methods `get` and `ls` are never used --> src/api/sources/mcman_meta/mod.rs:9:18 | 8 | impl<'a> McmanMetaAPI<'a> { | ------------------------- methods in this implementation 9 | pub async fn get(&self, folder: &str, path: &str) -> Result<String> { | ^^^ ... 21 | pub async fn ls(&self, folder: &str) -> Result<Vec<String>> { | ^^
struct `McmanMetaAPI` is never constructed: src/api/sources/mcman_meta/mod.rs#L6
warning: struct `McmanMetaAPI` is never constructed --> src/api/sources/mcman_meta/mod.rs:6:12 | 6 | pub struct McmanMetaAPI<'a>(pub &'a App); | ^^^^^^^^^^^^
method `paste_log` is never used: src/api/sources/mclogs/mod.rs#L16
warning: method `paste_log` is never used --> src/api/sources/mclogs/mod.rs:16:18 | 15 | impl<'a> MCLogsAPI<'a> { | ---------------------- method in this implementation 16 | pub async fn paste_log(&self, content: &str) -> Result<LogFileMetadata> { | ^^^^^^^^^
function `resolve_remove_steps` is never used: src/api/sources/buildtools/mod.rs#L40
warning: function `resolve_remove_steps` is never used --> src/api/sources/buildtools/mod.rs:40:14 | 40 | pub async fn resolve_remove_steps( | ^^^^^^^^^^^^^^^^^^^^
associated function `from_addon` is never used: src/api/models/packwiz/mod.rs#L64
warning: associated function `from_addon` is never used --> src/api/models/packwiz/mod.rs:64:18 | 62 | impl PackwizMod { | --------------- associated function in this implementation 63 | // TODO: incomplete 64 | pub async fn from_addon(app: &App, addon: &Addon) -> Result<(PathBuf, Self)> { | ^^^^^^^^^^
associated function `from_steps` is never used: src/api/models/packwiz/mod.rs#L57
warning: associated function `from_steps` is never used --> src/api/models/packwiz/mod.rs:57:18 | 56 | impl PackwizModDownload { | ----------------------- associated function in this implementation 57 | pub async fn from_steps(steps: &[Step]) -> Self { | ^^^^^^^^^^
associated function `from_addon_type` is never used: src/api/models/packwiz/mod.rs#L41
warning: associated function `from_addon_type` is never used --> src/api/models/packwiz/mod.rs:41:12 | 40 | impl PackwizModUpdate { | --------------------- associated function in this implementation 41 | pub fn from_addon_type(addon_type: &AddonType) -> Result<Option<Self>> { | ^^^^^^^^^^^^^^^
enum `LockfileMessage` is never used: src/api/models/lockfile/mod.rs#L18
warning: enum `LockfileMessage` is never used --> src/api/models/lockfile/mod.rs:18:10 | 18 | pub enum LockfileMessage { | ^^^^^^^^^^^^^^^
enum `FileMessage` is never used: src/api/app/logging/mod.rs#L7
warning: enum `FileMessage` is never used --> src/api/app/logging/mod.rs:7:10 | 7 | pub enum FileMessage { | ^^^^^^^^^^^
enum `Message` is never used: src/api/app/logging/mod.rs#L3
warning: enum `Message` is never used --> src/api/app/logging/mod.rs:3:10 | 3 | pub enum Message { | ^^^^^^^ | = note: `#[warn(dead_code)]` on by default
unused variable: `relative_to`: src/api/utils/update_writer.rs#L26
warning: unused variable: `relative_to` --> src/api/utils/update_writer.rs:26:34 | 26 | pub fn from(source: &Source, relative_to: &Path) -> Result<Self> { | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_relative_to`
unused variable: `source`: src/api/utils/update_writer.rs#L26
warning: unused variable: `source` --> src/api/utils/update_writer.rs:26:17 | 26 | pub fn from(source: &Source, relative_to: &Path) -> Result<Self> { | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
unreachable pattern: src/api/models/markdown/render.rs#L52
warning: unreachable pattern --> src/api/models/markdown/render.rs:52:25 | 52 | _ => meta.source.into_str().to_owned(), | ^ | = note: `#[warn(unreachable_patterns)]` on by default
unused variable: `url`: src/api/models/addon/addon_type.rs#L84
warning: unused variable: `url` --> src/api/models/addon/addon_type.rs:84:17 | 84 | url, | ^^^ help: try ignoring the field: `url: _`
unused variable: `url`: src/api/models/addon/addon_type.rs#L78
warning: unused variable: `url` --> src/api/models/addon/addon_type.rs:78:17 | 78 | url, | ^^^ help: try ignoring the field: `url: _`
unused import: `Digest`: src/api/utils/hashing/curseforge.rs#L1
warning: unused import: `Digest` --> src/api/utils/hashing/curseforge.rs:1:14 | 1 | use digest::{Digest, DynDigest, FixedOutput, FixedOutputReset, OutputSizeUser, Reset, Update}; | ^^^^^^
unused variable: `args`: src/commands/update.rs#L10
warning: unused variable: `args` --> src/commands/update.rs:10:33 | 10 | pub async fn run(app: Arc<App>, args: Args) -> Result<()> { | ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
unused variable: `app`: src/commands/update.rs#L10
warning: unused variable: `app` --> src/commands/update.rs:10:18 | 10 | pub async fn run(app: Arc<App>, args: Args) -> Result<()> { | ^^^ help: if this is intentional, prefix it with an underscore: `_app`
unused variable: `args`: src/commands/markdown/print.rs#L10
warning: unused variable: `args` --> src/commands/markdown/print.rs:10:33 | 10 | pub async fn run(app: Arc<App>, args: Args) -> Result<()> { | ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
unused variable: `app`: src/commands/markdown/print.rs#L10
warning: unused variable: `app` --> src/commands/markdown/print.rs:10:18 | 10 | pub async fn run(app: Arc<App>, args: Args) -> Result<()> { | ^^^ help: if this is intentional, prefix it with an underscore: `_app`
unreachable expression: src/commands/markdown/print.rs#L13
warning: unreachable expression --> src/commands/markdown/print.rs:13:5 | 11 | todo!(); | ------- any code following this expression is unreachable 12 | 13 | Ok(()) | ^^^^^^ unreachable expression | = note: `#[warn(unreachable_code)]` on by default
unused variable: `args`: src/commands/markdown/render.rs#L10
warning: unused variable: `args` --> src/commands/markdown/render.rs:10:33 | 10 | pub async fn run(app: Arc<App>, args: Args) -> Result<()> { | ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
variable does not need to be mutable: src/commands/init.rs#L87
warning: variable does not need to be mutable --> src/commands/init.rs:87:9 | 87 | let mut nw = Network { | ----^^ | | | help: remove this `mut`
variable does not need to be mutable: src/commands/init.rs#L60
warning: variable does not need to be mutable --> src/commands/init.rs:60:9 | 60 | let mut server = Server { | ----^^^^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` on by default
unused variable: `args`: src/commands/export/packwiz.rs#L10
warning: unused variable: `args` --> src/commands/export/packwiz.rs:10:33 | 10 | pub async fn run(app: Arc<App>, args: Args) -> Result<()> { | ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
unused variable: `app`: src/commands/export/packwiz.rs#L10
warning: unused variable: `app` --> src/commands/export/packwiz.rs:10:18 | 10 | pub async fn run(app: Arc<App>, args: Args) -> Result<()> { | ^^^ help: if this is intentional, prefix it with an underscore: `_app`
unused variable: `args`: src/commands/export/mrpack.rs#L12
warning: unused variable: `args` --> src/commands/export/mrpack.rs:12:33 | 12 | pub async fn run(app: Arc<App>, args: Args) -> Result<()> { | ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
unused variable: `app`: src/commands/export/mrpack.rs#L12
warning: unused variable: `app` --> src/commands/export/mrpack.rs:12:18 | 12 | pub async fn run(app: Arc<App>, args: Args) -> Result<()> { | ^^^ help: if this is intentional, prefix it with an underscore: `_app`
unused variable: `event`: src/api/ws/mod.rs#L91
warning: unused variable: `event` --> src/api/ws/mod.rs:91:48 | 91 | pub async fn handle_event(self: Arc<Self>, event: MsgIn) -> Result<()> { | ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
unused variable: `loader`: src/api/models/server/server_type.rs#L273
warning: unused variable: `loader` --> src/api/models/server/server_type.rs:273:33 | 273 | ServerType::Forge { loader } => todo!(), | ^^^^^^ help: try ignoring the field: `loader: _`
unused variable: `loader`: src/api/models/server/server_type.rs#L272
warning: unused variable: `loader` --> src/api/models/server/server_type.rs:272:36 | 272 | ServerType::NeoForge { loader } => todo!(), | ^^^^^^ help: try ignoring the field: `loader: _`
unused variable: `installer`: src/api/models/server/server_type.rs#L271
warning: unused variable: `installer` --> src/api/models/server/server_type.rs:271:41 | 271 | ServerType::Quilt { loader, installer } => todo!(), | ^^^^^^^^^ help: try ignoring the field: `installer: _`
unused variable: `loader`: src/api/models/server/server_type.rs#L271
warning: unused variable: `loader` --> src/api/models/server/server_type.rs:271:33 | 271 | ServerType::Quilt { loader, installer } => todo!(), | ^^^^^^ help: try ignoring the field: `loader: _`
unused variable: `build`: src/api/models/server/server_type.rs#L245
warning: unused variable: `build` --> src/api/models/server/server_type.rs:245:34 | 245 | ServerType::Purpur { build } => todo!(), | ^^^^^ help: try ignoring the field: `build: _`
unused variable: `steps`: src/api/models/packwiz/mod.rs#L65
warning: unused variable: `steps` --> src/api/models/packwiz/mod.rs:65:13 | 65 | let steps = addon.resolve_steps(app).await?; | ^^^^^ help: if this is intentional, prefix it with an underscore: `_steps`
unused variable: `steps`: src/api/models/packwiz/mod.rs#L57
warning: unused variable: `steps` --> src/api/models/packwiz/mod.rs:57:29 | 57 | pub async fn from_steps(steps: &[Step]) -> Self { | ^^^^^ help: if this is intentional, prefix it with an underscore: `_steps`
unused variable: `rendered`: src/api/app/actions/markdown/mod.rs#L65
warning: unused variable: `rendered` --> src/api/app/actions/markdown/mod.rs:65:13 | 65 | let rendered = self.render_metadata(metadata).await?; | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rendered`
unused variable: `app`: src/api/models/packwiz/mod.rs#L78
warning: unused variable: `app` --> src/api/models/packwiz/mod.rs:78:36 | 78 | pub async fn into_addon(&self, app: &App, target: AddonTarget) -> Result<Addon> { | ^^^ help: if this is intentional, prefix it with an underscore: `_app`
unused variable: `label`: src/api/app/step/execute_java.rs#L20
warning: unused variable: `label` --> src/api/app/step/execute_java.rs:20:9 | 20 | label: &str, | ^^^^^ help: if this is intentional, prefix it with an underscore: `_label`
unused variable: `loader`: src/api/models/server/server_type.rs#L194
warning: unused variable: `loader` --> src/api/models/server/server_type.rs:194:33 | 194 | ServerType::Forge { loader } => todo!(), | ^^^^^^ help: try ignoring the field: `loader: _`
unused variable: `loader`: src/api/models/server/server_type.rs#L193
warning: unused variable: `loader` --> src/api/models/server/server_type.rs:193:36 | 193 | ServerType::NeoForge { loader } => todo!(), | ^^^^^^ help: try ignoring the field: `loader: _`
unused variable: `build`: src/api/models/server/server_type.rs#L182
warning: unused variable: `build` --> src/api/models/server/server_type.rs:182:34 | 182 | ServerType::Purpur { build } => todo!(), | ^^^^^ help: try ignoring the field: `build: _` | = note: `#[warn(unused_variables)]` on by default
unused import: `Path`: src/commands/init.rs#L2
warning: unused import: `Path` --> src/commands/init.rs:2:12 | 2 | path::{Path, PathBuf}, | ^^^^
unused import: `Path`: src/commands/build.rs#L2
warning: unused import: `Path` --> src/commands/build.rs:2:12 | 2 | path::{Path, PathBuf}, | ^^^^
unused import: `super::toml::read_toml`: src/api/utils/update_writer.rs#L16
warning: unused import: `super::toml::read_toml` --> src/api/utils/update_writer.rs:16:5 | 16 | use super::toml::read_toml; | ^^^^^^^^^^^^^^^^^^^^^^
unused imports: `ModpackSource`, `ModpackType`, `SourceType`, and `app::App`: src/api/utils/update_writer.rs#L8
warning: unused imports: `ModpackSource`, `ModpackType`, `SourceType`, and `app::App` --> src/api/utils/update_writer.rs:8:5 | 8 | app::App, | ^^^^^^^^ ... 12 | ModpackSource, ModpackType, Source, SourceType, | ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^
unused import: `anyhow`: src/api/utils/update_writer.rs#L3
warning: unused import: `anyhow` --> src/api/utils/update_writer.rs:3:14 | 3 | use anyhow::{anyhow, Result}; | ^^^^^^
binding's name is too similar to existing binding: src/api/utils/pathdiff.rs#L80
warning: binding's name is too similar to existing binding --> src/api/utils/pathdiff.rs:80:17 | 80 | let mut itb = base.components(); | ^^^ | note: existing binding defined here --> src/api/utils/pathdiff.rs:79:17 | 79 | let mut ita = path.components(); | ^^^ = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#similar_names
unused import: `DynDigest`: src/api/utils/hashing/curseforge.rs#L1
warning: unused import: `DynDigest` --> src/api/utils/hashing/curseforge.rs:1:22 | 1 | use digest::{Digest, DynDigest, FixedOutput, FixedOutputReset, OutputSizeUser, Reset, Update}; | ^^^^^^^^^
unused import: `anyhow`: src/api/tools/java/mod.rs#L14
warning: unused import: `anyhow` --> src/api/tools/java/mod.rs:14:14 | 14 | use anyhow::{anyhow, Context, Result}; | ^^^^^^
unused imports: `assets::*` and `rulematcher::*`: src/api/sources/vanilla/mod.rs#L17
warning: unused imports: `assets::*` and `rulematcher::*` --> src/api/sources/vanilla/mod.rs:17:16 | 17 | pub use self::{assets::*, manifest::*, rulematcher::*, version::*}; | ^^^^^^^^^ ^^^^^^^^^^^^^^
unused imports: `Deserialize` and `Serialize`: src/api/sources/mcman_meta/mod.rs#L2
warning: unused imports: `Deserialize` and `Serialize` --> src/api/sources/mcman_meta/mod.rs:2:13 | 2 | use serde::{Deserialize, Serialize}; | ^^^^^^^^^^^ ^^^^^^^^^
unused import: `anyhow`: src/api/sources/mcman_meta/mod.rs#L1
warning: unused import: `anyhow` --> src/api/sources/mcman_meta/mod.rs:1:14 | 1 | use anyhow::{anyhow, Result}; | ^^^^^^
unused import: `anyhow::Result`: src/api/sources/hangar/models.rs#L6
warning: unused import: `anyhow::Result` --> src/api/sources/hangar/models.rs:6:5 | 6 | use anyhow::Result; | ^^^^^^^^^^^^^^
unused import: `bail`: src/api/models/metadata/addon_metadata.rs#L1
warning: unused import: `bail` --> src/api/models/metadata/addon_metadata.rs:1:14 | 1 | use anyhow::{bail, Result}; | ^^^^
unused import: `server_launcher::*`: src/api/models/legacy/mod.rs#L16
warning: unused import: `server_launcher::*` --> src/api/models/legacy/mod.rs:16:9 | 16 | pub use server_launcher::*; | ^^^^^^^^^^^^^^^^^^
unused import: `network::*`: src/api/models/legacy/mod.rs#L14
warning: unused import: `network::*` --> src/api/models/legacy/mod.rs:14:9 | 14 | pub use network::*; | ^^^^^^^^^^
unused import: `super::Addon`: src/api/models/addon/addon_type.rs#L5
warning: unused import: `super::Addon` --> src/api/models/addon/addon_type.rs:5:5 | 5 | use super::Addon; | ^^^^^^^^^^^^
unused import: `logging::*`: src/api/app/mod.rs#L20
warning: unused import: `logging::*` --> src/api/app/mod.rs:20:9 | 20 | pub use logging::*; | ^^^^^^^^^^
redundant else block: src/api/app/step/cache_check.rs#L89
warning: redundant else block --> src/api/app/step/cache_check.rs:89:28 | 89 | } else { | ____________________________^ 90 | | // hash mismatch 91 | | // TODO: print warning 92 | | println!("WARNING Hash mismatch: {}", metadata.filename); ... | 95 | | .context("hash mismatch remove file")?; 96 | | } | |_____________________^ | = help: remove the `else` block and move the contents out = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_else = note: `-W clippy::redundant-else` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::redundant_else)]`
unused import: `lockfile::Lockfile`: src/api/app/io.rs#L8
warning: unused import: `lockfile::Lockfile` --> src/api/app/io.rs:8:9 | 8 | lockfile::Lockfile, | ^^^^^^^^^^^^^^^^^^
unused import: `tokio::sync::RwLock`: src/api/app/io.rs#L4
warning: unused import: `tokio::sync::RwLock` --> src/api/app/io.rs:4:5 | 4 | use tokio::sync::RwLock; | ^^^^^^^^^^^^^^^^^^^
unused import: `std::sync::Arc`: src/api/app/io.rs#L1
warning: unused import: `std::sync::Arc` --> src/api/app/io.rs:1:5 | 1 | use std::sync::Arc; | ^^^^^^^^^^^^^^
binding's name is too similar to existing binding: src/api/app/http.rs#L22
warning: binding's name is too similar to existing binding --> src/api/app/http.rs:22:13 | 22 | let res = req.send().await?.error_for_status()?; | ^^^ | note: existing binding defined here --> src/api/app/http.rs:18:13 | 18 | let req = self.http_client.get(url.as_str()); | ^^^ = 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: `path::Path`: src/main.rs#L1
warning: unused import: `path::Path` --> src/main.rs:1:11 | 1 | use std::{path::Path, sync::Arc}; | ^^^^^^^^^^ | = note: `#[warn(unused_imports)]` on by default
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/
clippy
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions-rs/clippy-check@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
build (ubuntu-latest)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/upload-artifact@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
build (windows-latest)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/upload-artifact@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
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
7.76 MB
mcman-windows-latest
12 MB