From db4587d3ec64b7e28691b43f9d9701939eed94d1 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 3 Jun 2025 20:00:18 +0200 Subject: update rust toolchain and rust dependencies. `map_many_mut` and `trait_upcasting` was stabilized. --- server/src/entity/conveyor.rs | 3 ++- server/src/entity/item_portal.rs | 2 +- server/src/lib.rs | 9 +-------- server/src/main.rs | 10 +++++++--- server/src/scoreboard.rs | 8 ++++---- server/src/server.rs | 4 ++-- 6 files changed, 17 insertions(+), 19 deletions(-) (limited to 'server/src') diff --git a/server/src/entity/conveyor.rs b/server/src/entity/conveyor.rs index 6177ba9c..4c50365d 100644 --- a/server/src/entity/conveyor.rs +++ b/server/src/entity/conveyor.rs @@ -65,7 +65,8 @@ impl Entity for Conveyor { if self.from == self.to { bail!("conveyor does ends in itself") } - let [Some(from), Some(to)] = c.game.tiles.get_many_mut([&self.from, &self.to]) else { + let [Some(from), Some(to)] = c.game.tiles.get_disjoint_mut([&self.from, &self.to]) + else { bail!("at least one conveyor end not on map"); }; diff --git a/server/src/entity/item_portal.rs b/server/src/entity/item_portal.rs index 3ea33fa6..ef73e6ec 100644 --- a/server/src/entity/item_portal.rs +++ b/server/src/entity/item_portal.rs @@ -31,7 +31,7 @@ impl Entity for ItemPortal { if self.from == self.to { bail!("item portal ends in itself") } - let [Some(from), Some(to)] = c.game.tiles.get_many_mut([&self.from, &self.to]) else { + let [Some(from), Some(to)] = c.game.tiles.get_disjoint_mut([&self.from, &self.to]) else { bail!("at least one item portal end not on map"); }; diff --git a/server/src/lib.rs b/server/src/lib.rs index 9fba35ce..372b0b62 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -15,14 +15,7 @@ along with this program. If not, see . */ -#![feature( - if_let_guard, - map_many_mut, - let_chains, - iterator_try_collect, - trait_upcasting, - stmt_expr_attributes -)] +#![feature(if_let_guard, let_chains, iterator_try_collect, stmt_expr_attributes)] pub mod commands; pub mod data; pub mod entity; diff --git a/server/src/main.rs b/server/src/main.rs index b1dc503b..cc5bcb52 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -206,7 +206,7 @@ async fn run(args: Args) -> anyhow::Result<()> { for p in init { if let Err(e) = write .send(tokio_tungstenite::tungstenite::Message::Text( - serde_json::to_string(&p).unwrap(), + serde_json::to_string(&p).unwrap().into(), )) .await { @@ -233,9 +233,13 @@ async fn run(args: Args) -> anyhow::Result<()> { break; }; let message = if supports_binary.load(Ordering::Relaxed) { - Message::Binary(bincode::encode_to_vec(&packet, BINCODE_CONFIG).unwrap()) + Message::Binary( + bincode::encode_to_vec(&packet, BINCODE_CONFIG) + .unwrap() + .into(), + ) } else { - Message::Text(serde_json::to_string(&packet).unwrap()) + Message::Text(serde_json::to_string(&packet).unwrap().into()) }; if let Err(e) = write.send(message).await { warn!("WebSocket error: {e}"); diff --git a/server/src/scoreboard.rs b/server/src/scoreboard.rs index f61b3001..f2fb86a2 100644 --- a/server/src/scoreboard.rs +++ b/server/src/scoreboard.rs @@ -42,7 +42,7 @@ pub struct ScoreboardEntry { impl ScoreboardStore { pub async fn load() -> Result { let path = - xdg::BaseDirectories::with_prefix("hurrycurry")?.place_data_file("scoreboards.json")?; + xdg::BaseDirectories::with_prefix("hurrycurry").place_data_file("scoreboards.json")?; // TOCTOU because its easier that way if !path.exists() { ScoreboardStore::default().save().await?; @@ -52,9 +52,9 @@ impl ScoreboardStore { } pub async fn save(&self) -> Result<()> { let path = - xdg::BaseDirectories::with_prefix("hurrycurry")?.place_data_file("scoreboards.json")?; - let buffer_path = xdg::BaseDirectories::with_prefix("hurrycurry")? - .place_data_file("scoreboards.json~")?; + xdg::BaseDirectories::with_prefix("hurrycurry").place_data_file("scoreboards.json")?; + let buffer_path = + xdg::BaseDirectories::with_prefix("hurrycurry").place_data_file("scoreboards.json~")?; File::create(&buffer_path) .await? .write_all(serde_json::to_string(self)?.as_bytes()) diff --git a/server/src/server.rs b/server/src/server.rs index f9342add..3823c0ca 100644 --- a/server/src/server.rs +++ b/server/src/server.rs @@ -531,7 +531,7 @@ impl Server { return Err(tre!("s.error.self_interact")); } let [Some(other), Some(this)] = - self.game.players.get_many_mut([&pid, &base_pid]) + self.game.players.get_disjoint_mut([&pid, &base_pid]) else { return Err(tre!("s.error.self_interact")); }; @@ -677,7 +677,7 @@ impl Server { .players_spatial_index .query(pos1, 2., |p2, _pos2| { if p1 != p2 { - if let [Some(a), Some(b)] = self.game.players.get_many_mut([&p1, &p2]) { + if let [Some(a), Some(b)] = self.game.players.get_disjoint_mut([&p1, &p2]) { a.movement.collide(&mut b.movement, dt) } } -- cgit v1.2.3-70-g09d2