1
0
mirror of https://github.com/actix/examples synced 2025-06-26 17:17:42 +02:00

chore: update derive_more to v2

This commit is contained in:
Rob Ede
2025-02-24 04:03:40 +00:00
parent a6df6cc903
commit df0dc549a5
15 changed files with 62 additions and 41 deletions

View File

@ -5,12 +5,12 @@ use actix::prelude::*;
pub struct ChatMessage(pub String);
#[derive(Clone, Message)]
#[rtype(result = "usize")]
#[rtype(result = "u64")]
pub struct JoinRoom(pub String, pub Option<String>, pub Recipient<ChatMessage>);
#[derive(Clone, Message)]
#[rtype(result = "()")]
pub struct LeaveRoom(pub String, pub usize);
pub struct LeaveRoom(pub String, pub u64);
#[derive(Clone, Message)]
#[rtype(result = "Vec<String>")]
@ -18,4 +18,4 @@ pub struct ListRooms;
#[derive(Clone, Message)]
#[rtype(result = "()")]
pub struct SendMessage(pub String, pub usize, pub String);
pub struct SendMessage(pub String, pub u64, pub String);

View File

@ -6,7 +6,7 @@ use actix_broker::BrokerSubscribe;
use crate::message::{ChatMessage, JoinRoom, LeaveRoom, ListRooms, SendMessage};
type Client = Recipient<ChatMessage>;
type Room = HashMap<usize, Client>;
type Room = HashMap<u64, Client>;
#[derive(Default)]
pub struct WsChatServer {
@ -20,13 +20,13 @@ impl WsChatServer {
Some(room)
}
fn add_client_to_room(&mut self, room_name: &str, id: Option<usize>, client: Client) -> usize {
let mut id = id.unwrap_or_else(rand::random::<usize>);
fn add_client_to_room(&mut self, room_name: &str, id: Option<u64>, client: Client) -> u64 {
let mut id = id.unwrap_or_else(rand::random);
if let Some(room) = self.rooms.get_mut(room_name) {
loop {
if room.contains_key(&id) {
id = rand::random::<usize>();
id = rand::random();
} else {
break;
}
@ -45,7 +45,7 @@ impl WsChatServer {
id
}
fn send_chat_message(&mut self, room_name: &str, msg: &str, _src: usize) -> Option<()> {
fn send_chat_message(&mut self, room_name: &str, msg: &str, _src: u64) -> Option<()> {
let mut room = self.take_room(room_name)?;
for (id, client) in room.drain() {

View File

@ -9,7 +9,7 @@ use crate::{
#[derive(Default)]
pub struct WsChatSession {
id: usize,
id: u64,
room: String,
name: Option<String>,
}