# HG changeset patch # User unC0Rr # Date 1696275373 -7200 # Node ID 1635ce22b21414876979a70bf74a074df5f449b7 # Parent 20adaa1276635315417e36e2adda43c1c0e85a4f Adopt more recent versions of dependencies, apply clippy fixes diff -r 20adaa127663 -r 1635ce22b214 rust/hedgewars-checker/Cargo.toml --- a/rust/hedgewars-checker/Cargo.toml Thu Aug 24 20:15:40 2023 +0200 +++ b/rust/hedgewars-checker/Cargo.toml Mon Oct 02 21:36:13 2023 +0200 @@ -5,14 +5,14 @@ edition = "2018" [dependencies] -rust-ini = "0.18" -dirs = "4" +rust-ini = "0.19" +dirs = "5.0" argparse = "0.2" log = "0.4" stderrlog = "0.5" netbuf = "0.4" tempfile = "3.0" -base64 = "0.13" +base64 = "0.21" hedgewars-network-protocol = { path = "../hedgewars-network-protocol" } anyhow = "1.0" tokio = {version="1", features = ["full"]} diff -r 20adaa127663 -r 1635ce22b214 rust/hedgewars-checker/src/main.rs --- a/rust/hedgewars-checker/src/main.rs Thu Aug 24 20:15:40 2023 +0200 +++ b/rust/hedgewars-checker/src/main.rs Mon Oct 02 21:36:13 2023 +0200 @@ -1,5 +1,6 @@ use anyhow::{bail, Result}; use argparse::{ArgumentParser, Store}; +use base64::{engine::general_purpose, Engine}; use hedgewars_network_protocol::{ messages::HwProtocolMessage as ClientMessage, messages::HwServerMessage::*, parser, }; @@ -12,8 +13,8 @@ async fn check(executable: &str, data_prefix: &str, buffer: &[String]) -> Result> { let mut replay = tempfile::NamedTempFile::new()?; - for line in buffer.into_iter() { - replay.write(&base64::decode(line)?)?; + for line in buffer.iter() { + replay.write_all(&general_purpose::STANDARD.decode(line)?)?; } let temp_file_path = replay.path(); @@ -43,7 +44,7 @@ let mut engine_lines = output .stderr - .split(|b| *b == '\n' as u8) + .split(|b| *b == b'\n') .skip_while(|l| *l != b"WINNERS" && *l != b"DRAW"); // debug!("Engine lines: {:?}", &engine_lines); @@ -83,7 +84,7 @@ // println!("Engine lines: {:?}", &result); - if result.len() > 0 { + if !result.is_empty() { Ok(result) } else { bail!("no data from engine") @@ -133,27 +134,27 @@ debug!("Check result: [{:?}]", result); stream - .write( + .write_all( ClientMessage::CheckedOk(result) .to_raw_protocol() .as_bytes(), ) .await?; stream - .write(ClientMessage::CheckerReady.to_raw_protocol().as_bytes()) + .write_all(ClientMessage::CheckerReady.to_raw_protocol().as_bytes()) .await?; } Err(e) => { info!("Check failed: {:?}", e); stream - .write( + .write_all( ClientMessage::CheckedFail("error".to_owned()) .to_raw_protocol() .as_bytes(), ) .await?; stream - .write(ClientMessage::CheckerReady.to_raw_protocol().as_bytes()) + .write_all(ClientMessage::CheckerReady.to_raw_protocol().as_bytes()) .await?; } } @@ -183,7 +184,7 @@ Connected(_, _) => { info!("Connected"); stream - .write( + .write_all( ClientMessage::Checker( protocol_number, username.to_owned(), @@ -196,12 +197,12 @@ } Ping => { stream - .write(ClientMessage::Pong.to_raw_protocol().as_bytes()) + .write_all(ClientMessage::Pong.to_raw_protocol().as_bytes()) .await?; } LogonPassed => { stream - .write(ClientMessage::CheckerReady.to_raw_protocol().as_bytes()) + .write_all(ClientMessage::CheckerReady.to_raw_protocol().as_bytes()) .await?; } Replay(lines) => { @@ -216,12 +217,12 @@ info!("Chat [{}]: {}", nick, msg); } RoomAdd(fields) => { - let l = fields.into_iter(); - info!("Room added: {}", l.skip(1).next().unwrap()); + let mut l = fields.into_iter(); + info!("Room added: {}", l.nth(1).unwrap()); } RoomUpdated(name, fields) => { - let l = fields.into_iter(); - let new_name = l.skip(1).next().unwrap(); + let mut l = fields.into_iter(); + let new_name = l.nth(1).unwrap(); if name != new_name { info!("Room renamed: {}", new_name); @@ -245,7 +246,7 @@ async fn get_protocol_number(executable: &str) -> Result { let output = Command::new(executable).arg("--protocol").output().await?; - Ok(u16::from_str(&String::from_utf8(output.stdout).unwrap().trim()).unwrap_or(55)) + Ok(u16::from_str(String::from_utf8(output.stdout).unwrap().trim()).unwrap_or(55)) } #[tokio::main] @@ -279,7 +280,7 @@ info!("Executable: {}", exe); info!("Data dir: {}", prefix); - let protocol_number = get_protocol_number(&exe.as_str()).await.unwrap_or_default(); + let protocol_number = get_protocol_number(exe.as_str()).await.unwrap_or_default(); info!("Using protocol number {}", protocol_number); @@ -288,8 +289,8 @@ let (network_result, checker_result) = tokio::join!( connect_and_run( - &username, - &password, + username, + password, protocol_number, replay_sender, results_receiver