2019-04-29 20:37:19 +00:00
|
|
|
pub mod client;
|
2019-04-10 17:23:27 +00:00
|
|
|
pub mod ecs_packet;
|
2019-03-03 22:02:38 +00:00
|
|
|
pub mod server;
|
|
|
|
|
|
|
|
// Reexports
|
2020-02-01 20:39:39 +00:00
|
|
|
pub use self::{
|
|
|
|
client::ClientMsg,
|
|
|
|
ecs_packet::EcsCompPacket,
|
|
|
|
server::{PlayerListUpdate, RequestStateError, ServerError, ServerInfo, ServerMsg},
|
|
|
|
};
|
2019-04-19 19:32:47 +00:00
|
|
|
|
2019-04-20 17:54:37 +00:00
|
|
|
#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
|
2019-04-19 19:32:47 +00:00
|
|
|
pub enum ClientState {
|
2019-05-24 19:10:18 +00:00
|
|
|
Pending,
|
2019-04-20 17:54:37 +00:00
|
|
|
Connected,
|
2019-04-21 15:52:15 +00:00
|
|
|
Registered,
|
2019-04-19 19:32:47 +00:00
|
|
|
Spectator,
|
|
|
|
Character,
|
|
|
|
}
|
2019-08-14 04:38:54 +00:00
|
|
|
|
2019-08-15 21:28:36 +00:00
|
|
|
pub const MAX_BYTES_CHAT_MSG: usize = 256;
|
2019-08-14 04:38:54 +00:00
|
|
|
|
|
|
|
pub enum ChatMsgValidationError {
|
|
|
|
TooLong,
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn validate_chat_msg(msg: &str) -> Result<(), ChatMsgValidationError> {
|
|
|
|
// TODO: Consider using grapheme cluster count instead of size in bytes
|
|
|
|
if msg.len() <= MAX_BYTES_CHAT_MSG {
|
|
|
|
Ok(())
|
|
|
|
} else {
|
|
|
|
Err(ChatMsgValidationError::TooLong)
|
|
|
|
}
|
|
|
|
}
|