@@ -17,20 +17,14 @@ pub enum RoomError {
1717 #[ error( "IO error is: {0}" ) ]
1818 Io ( #[ from] std:: io:: Error ) ,
1919
20- #[ error( "IO error is: {0}" ) ]
21- IoAnyhow ( #[ from] anyhow:: Error ) ,
22-
2320 #[ error( "Json parse error is: {0}" ) ]
2421 JsonParse ( #[ from] serde_json:: Error ) ,
2522
26- #[ error( "Lock error is: {0}" ) ]
27- Lock ( String ) ,
23+ #[ error( "Broadcast receive error is: {0}" ) ]
24+ BroadcastReceive ( String ) ,
2825
29- #[ error( "Broadcast error is: {0}" ) ]
30- Broadcast ( String ) ,
31-
32- #[ error( "Join error is: {0}" ) ]
33- JoinError ( #[ from] tokio:: task:: JoinError ) ,
26+ #[ error( "Broadcast send error: {0}" ) ]
27+ BroadcastSend ( #[ from] tokio:: sync:: broadcast:: error:: SendError < ChatResponse > ) ,
3428}
3529pub async fn process_command (
3630 writer_half : OwnedWriteHalf ,
@@ -100,7 +94,7 @@ pub async fn process_command(
10094 send_to_broadcast_channel ( chat_response, room_state. clone ( ) ) . await ?;
10195 }
10296 ChatCommand :: Leave ( username) => {
103- remove_username ( username. clone ( ) , room_state. clone ( ) ) . await ? ;
97+ remove_username ( username. clone ( ) , room_state. clone ( ) ) . await ;
10498 debug ! ( "User {} has left" , username) ;
10599 if let Some ( handle) = room_state. task_handles . lock ( ) . await . remove ( & username) {
106100 info ! ( "Aborting background task for user: {}" , username) ;
@@ -122,18 +116,13 @@ pub async fn process_command(
122116 Ok ( ( ) )
123117}
124118
125- pub async fn remove_username (
126- username : String ,
127- room_state : Arc < RoomState > ,
128- ) -> Result < ( ) , RoomError > {
119+ pub async fn remove_username ( username : String , room_state : Arc < RoomState > ) {
129120 let mut users = room_state. user_set . lock ( ) . await ;
130121 users. remove ( & username) ;
131122 info ! ( "User {} removed from room" , username) ;
132123 // list connected users
133124 let users: Vec < String > = users. iter ( ) . cloned ( ) . collect ( ) ;
134125 info ! ( "Users in room after removal: {:?}" , users) ;
135-
136- Ok ( ( ) )
137126}
138127
139128#[ cfg( test) ]
@@ -156,8 +145,7 @@ mod tests {
156145 } ) ;
157146
158147 // Execute removal
159- let result = remove_username ( "test_user" . to_string ( ) , room_state. clone ( ) ) . await ;
160- assert ! ( result. is_ok( ) ) ;
148+ remove_username ( "test_user" . to_string ( ) , room_state. clone ( ) ) . await ;
161149
162150 // Verify user was removed
163151 let users = room_state. user_set . lock ( ) . await ;
0 commit comments