Skip to content

Commit

Permalink
perf: more use of raw strings and slices
Browse files Browse the repository at this point in the history
  • Loading branch information
null8626 committed Feb 2, 2024
1 parent ca4999a commit d40c7fa
Show file tree
Hide file tree
Showing 11 changed files with 28 additions and 34 deletions.
11 changes: 5 additions & 6 deletions src/app/from_string.rs
Original file line number Diff line number Diff line change
Expand Up @@ -415,22 +415,21 @@ impl App {

let suggest = format!("{repo}/{}", group.replace('.', "/"));

let artifact = match artifact_id {
Some(r) => r,
None => self.prompt_string_filled(
let artifact = artifact_id.unwrap_or_else(|| {
self.prompt_string_filled(
"Artifact?",
if urlstr.starts_with(&suggest) {
urlstr
.strip_prefix(&suggest)
.unwrap()
.split('/')
.find(|x| !x.is_empty())
.unwrap_or("")
.unwrap_or_default()
} else {
""
},
)?,
};
)

Check failure on line 431 in src/app/from_string.rs

View workflow job for this annotation

GitHub Actions / clippy

mismatched types

error[E0308]: mismatched types --> src/app/from_string.rs:419:29 | 419 | / ... self.prompt_string_filled( 420 | | ... "Artifact?", 421 | | ... if urlstr.starts_with(&suggest) { 422 | | ... urlstr ... | 430 | | ... }, 431 | | ... ) | |_______________________^ expected `String`, found `Result<String, Error>` | = note: expected struct `std::string::String` found enum `std::result::Result<std::string::String, anyhow::Error>` help: consider using `Result::expect` to unwrap the `std::result::Result<std::string::String, anyhow::Error>` value, panicking if the value is a `Result::Err` | 431 | ).expect("REASON") | +++++++++++++++++
});

let mut versions = vec![SelectItem(
"latest".to_owned(),
Expand Down
4 changes: 2 additions & 2 deletions src/app/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,8 @@ impl App {
})
}

pub fn mc_version(&self) -> String {
self.server.mc_version.clone()
pub fn mc_version(&self) -> &str {
self.server.mc_version.as_str()
}

pub fn reload_server(&mut self) -> Result<()> {
Expand Down
2 changes: 1 addition & 1 deletion src/core/scripts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use super::BuildContext;

impl<'a> BuildContext<'a> {
pub async fn get_startup_method(&self, serverjar_name: &str) -> Result<StartupMethod> {
let mcver = &self.app.mc_version();
let mcver = self.app.mc_version();
Ok(match &self.app.server.jar {
ServerType::NeoForge { loader } => {
let l = self.app.neoforge().resolve_version(loader).await?;
Expand Down
11 changes: 3 additions & 8 deletions src/core/serverjar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ use super::BuildContext;

impl<'a> BuildContext<'a> {
pub async fn get_install_method(&self) -> Result<InstallMethod> {
let mcver = &self.app.mc_version();
let mcver = self.app.mc_version();
Ok(match self.app.server.jar.clone() {
ServerType::Quilt { loader, .. } => {
let mut args = vec!["install", "server", mcver];
Expand Down Expand Up @@ -146,7 +146,7 @@ impl<'a> BuildContext<'a> {

let java = env::var("JAVA_BIN").unwrap_or("java".to_owned());

self.execute_child((&java, cmd_args.clone()), name, label)
self.execute_child((&java, &cmd_args), name, label)
.await
.context(format!("Executing command: 'java {}'", cmd_args.join(" ")))
.context(format!("Running installer: {name}"))?;
Expand Down Expand Up @@ -199,12 +199,7 @@ impl<'a> BuildContext<'a> {
Ok(serverjar_name)
}

pub async fn execute_child(
&self,
cmd: (&str, Vec<&str>),
label: &str,
tag: &str,
) -> Result<()> {
pub async fn execute_child(&self, cmd: (&str, &[&str]), label: &str, tag: &str) -> Result<()> {
// because jre cant understand UNC
let dir = diff_paths(&self.output_dir, env::current_dir()?.canonicalize()?).unwrap();

Expand Down
2 changes: 1 addition & 1 deletion src/model/serverlauncher.rs
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ impl ServerLauncher {
"-D{}={}",
key,
if value.contains(char::is_whitespace) {
"\"".to_owned() + value + "\""
format!("\"{value}\"")
} else {
value.clone()
}
Expand Down
2 changes: 1 addition & 1 deletion src/model/servertype/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ impl ToString for ServerType {

impl Resolvable for ServerType {
async fn resolve_source(&self, app: &App) -> Result<ResolvedFile> {
let version = &app.mc_version();
let version = app.mc_version();

match self {
ServerType::Vanilla {} => app.vanilla().resolve_source(version).await,
Expand Down
8 changes: 4 additions & 4 deletions src/sources/github.rs
Original file line number Diff line number Diff line change
Expand Up @@ -166,8 +166,8 @@ impl<'a> GithubAPI<'a> {
pub async fn fetch_release(&self, repo: &str, release_tag: &str) -> Result<GithubRelease> {
let releases = self.fetch_releases(repo).await?;

let tag = release_tag.replace("${mcver}", &self.0.mc_version());
let tag = tag.replace("${mcversion}", &self.0.mc_version());
let tag = release_tag.replace("${mcver}", self.0.mc_version());
let tag = tag.replace("${mcversion}", self.0.mc_version());

let release = match tag.as_str() {
"latest" => releases.first(),
Expand Down Expand Up @@ -198,8 +198,8 @@ impl<'a> GithubAPI<'a> {
id.replace("${version}", &release.tag_name)
.replace("${tag}", &release.tag_name)
.replace("${release}", &release.tag_name)
.replace("${mcver}", &self.0.mc_version())
.replace("${mcversion}", &self.0.mc_version())
.replace("${mcver}", self.0.mc_version())
.replace("${mcversion}", self.0.mc_version())
} else {
id.to_owned()
};
Expand Down
4 changes: 2 additions & 2 deletions src/sources/hangar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ impl<'a> HangarAPI<'a> {
.await?;

let version = version
.replace("${mcver}", &self.0.mc_version())
.replace("${mcversion}", &self.0.mc_version());
.replace("${mcver}", self.0.mc_version())
.replace("${mcversion}", self.0.mc_version());

versions
.result
Expand Down
4 changes: 2 additions & 2 deletions src/sources/jenkins.rs
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ impl<'a> JenkinsAPI<'a> {
.context("Fetching jenkins artifacts")?;

let artifact = artifact
.replace("${mcver}", &self.0.mc_version())
.replace("${mcversion}", &self.0.mc_version())
.replace("${mcver}", self.0.mc_version())
.replace("${mcversion}", self.0.mc_version())
.replace("${build}", &selected_build.number.to_string());

let selected_artifact = match artifact.as_str() {
Expand Down
8 changes: 4 additions & 4 deletions src/sources/maven.rs
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,8 @@ impl<'a> MavenAPI<'a> {
id => {
let id = id
.replace("${artifact}", artifact_id)
.replace("${mcversion}", &self.0.mc_version())
.replace("${mcver}", &self.0.mc_version());
.replace("${mcversion}", self.0.mc_version())
.replace("${mcver}", self.0.mc_version());
versions
.iter()
.find(|v| *v == &id)
Expand Down Expand Up @@ -192,8 +192,8 @@ impl<'a> MavenAPI<'a> {
let file = file
.replace("${artifact}", artifact_id)
.replace("${version}", &version)
.replace("${mcversion}", &self.0.mc_version())
.replace("${mcver}", &self.0.mc_version());
.replace("${mcversion}", self.0.mc_version())
.replace("${mcver}", self.0.mc_version());

let file = if file.contains('.') {
file
Expand Down
6 changes: 3 additions & 3 deletions src/sources/modrinth.rs
Original file line number Diff line number Diff line change
Expand Up @@ -166,8 +166,8 @@ impl<'a> ModrinthAPI<'a> {
let all_versions = self.fetch_all_versions(id).await?;
let versions = self.filter_versions(&all_versions);

let ver = version.replace("${mcver}", &self.0.mc_version());
let ver = ver.replace("${mcversion}", &self.0.mc_version());
let ver = version.replace("${mcver}", self.0.mc_version());
let ver = ver.replace("${mcversion}", self.0.mc_version());

let version_data = if let Some(v) = match ver.as_str() {
"latest" => versions.first(),
Expand Down Expand Up @@ -244,7 +244,7 @@ impl<'a> ModrinthAPI<'a> {
let is_proxy = self.0.server.jar.get_software_type() == SoftwareType::Proxy;
let is_vanilla = matches!(self.0.server.jar, ServerType::Vanilla {});

let mcver = &self.0.mc_version();
let mcver = self.0.mc_version();
let loader = self.get_modrinth_name();

list.iter()
Expand Down

0 comments on commit d40c7fa

Please sign in to comment.