diff options
author | metamuffin <metamuffin@disroot.org> | 2025-06-03 20:00:18 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-06-03 20:00:18 +0200 |
commit | db4587d3ec64b7e28691b43f9d9701939eed94d1 (patch) | |
tree | 1005017ea4a5d4e287024eaf08f876c7e34bfbdb /server/src | |
parent | 9ee7eef2919feffe4e0695494d4027e8ec011808 (diff) | |
download | hurrycurry-db4587d3ec64b7e28691b43f9d9701939eed94d1.tar hurrycurry-db4587d3ec64b7e28691b43f9d9701939eed94d1.tar.bz2 hurrycurry-db4587d3ec64b7e28691b43f9d9701939eed94d1.tar.zst |
update rust toolchain and rust dependencies.
`map_many_mut` and `trait_upcasting` was stabilized.
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/entity/conveyor.rs | 3 | ||||
-rw-r--r-- | server/src/entity/item_portal.rs | 2 | ||||
-rw-r--r-- | server/src/lib.rs | 9 | ||||
-rw-r--r-- | server/src/main.rs | 10 | ||||
-rw-r--r-- | server/src/scoreboard.rs | 8 | ||||
-rw-r--r-- | server/src/server.rs | 4 |
6 files changed, 17 insertions, 19 deletions
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 <https://www.gnu.org/licenses/>. */ -#![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<Self> { 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) } } |