File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -50,6 +50,8 @@ pub mod ports;
5050
5151pub mod remote;
5252
53+ mod utils;
54+
5355#[ cfg( test) ]
5456mod tests {
5557 use env_logger:: WriteStyle ;
Original file line number Diff line number Diff line change @@ -9,6 +9,7 @@ use uactor::blocking::Addr;
99use crate :: game_server:: { GameServerAddr , GameServerMessage } ;
1010use crate :: remote:: { RemoteConnection , RemoteMessage } ;
1111use crate :: room:: { GamePlayerMessage , RoomAddr , RoomMessage } ;
12+ use crate :: utils:: { char_len, char_trim} ;
1213
1314const TO_BE_CREATED : & str = "<to be created>" ;
1415
@@ -135,6 +136,14 @@ impl Player {
135136 . await ;
136137 }
137138 RemoteMessage :: UpdatePlayer { voter, name } => {
139+ let name = name. map ( |name| {
140+ if char_len ( & name) >= 32 {
141+ char_trim ( & name, 32 )
142+ } else {
143+ name
144+ }
145+ } ) ;
146+
138147 debug ! (
139148 "{}: Update player: voter={:?} name={:?}" ,
140149 self . id, & voter, & name
Original file line number Diff line number Diff line change 1+ pub fn char_len ( name : & str ) -> usize {
2+ name. encode_utf16 ( ) . count ( )
3+ }
4+
5+ pub fn char_trim ( name : & str , n : usize ) -> String {
6+ let trimmed: Vec < u16 > = name. encode_utf16 ( ) . take ( n) . collect ( ) ;
7+ String :: from_utf16_lossy ( trimmed. as_ref ( ) )
8+ }
You can’t perform that action at this time.
0 commit comments