gameServer2/src/utils.rs
author alfadur
Wed, 27 Jun 2018 02:34:46 +0300
changeset 13428 87a6cad20c90
parent 13421 cdf69667593b
child 13529 5359ff75da3a
permissions -rw-r--r--
Implement game start & engine messages
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13428
87a6cad20c90 Implement game start & engine messages
alfadur
parents: 13421
diff changeset
     1
use std::iter::Iterator;
12131
4348997e502b Refactor code to add more structure to it
unc0rr
parents: 12130
diff changeset
     2
use mio;
13428
87a6cad20c90 Implement game start & engine messages
alfadur
parents: 13421
diff changeset
     3
use base64::{encode};
12131
4348997e502b Refactor code to add more structure to it
unc0rr
parents: 12130
diff changeset
     4
12142
193dfdcb0620 - Use logging facilities instead of plain println!
unc0rr
parents: 12131
diff changeset
     5
pub const PROTOCOL_VERSION : u32 = 3;
12131
4348997e502b Refactor code to add more structure to it
unc0rr
parents: 12130
diff changeset
     6
pub const SERVER: mio::Token = mio::Token(1000000000 + 0);
13421
cdf69667593b partial room implementation
alfadur
parents: 12142
diff changeset
     7
cdf69667593b partial room implementation
alfadur
parents: 12142
diff changeset
     8
pub fn is_name_illegal(name: &str ) -> bool{
cdf69667593b partial room implementation
alfadur
parents: 12142
diff changeset
     9
    name.len() > 40 ||
cdf69667593b partial room implementation
alfadur
parents: 12142
diff changeset
    10
        name.trim().is_empty() ||
cdf69667593b partial room implementation
alfadur
parents: 12142
diff changeset
    11
        name.chars().any(|c|
cdf69667593b partial room implementation
alfadur
parents: 12142
diff changeset
    12
            "$()*+?[]^{|}\x7F".contains(c) ||
cdf69667593b partial room implementation
alfadur
parents: 12142
diff changeset
    13
                '\x00' <= c && c <= '\x1F')
13428
87a6cad20c90 Implement game start & engine messages
alfadur
parents: 13421
diff changeset
    14
}
87a6cad20c90 Implement game start & engine messages
alfadur
parents: 13421
diff changeset
    15
87a6cad20c90 Implement game start & engine messages
alfadur
parents: 13421
diff changeset
    16
pub fn to_engine_msg<T>(msg: T) -> String
87a6cad20c90 Implement game start & engine messages
alfadur
parents: 13421
diff changeset
    17
    where T: Iterator<Item = u8> + Clone
87a6cad20c90 Implement game start & engine messages
alfadur
parents: 13421
diff changeset
    18
{
87a6cad20c90 Implement game start & engine messages
alfadur
parents: 13421
diff changeset
    19
    let mut tmp = Vec::new();
87a6cad20c90 Implement game start & engine messages
alfadur
parents: 13421
diff changeset
    20
    tmp.push(msg.clone().count() as u8);
87a6cad20c90 Implement game start & engine messages
alfadur
parents: 13421
diff changeset
    21
    tmp.extend(msg);
87a6cad20c90 Implement game start & engine messages
alfadur
parents: 13421
diff changeset
    22
    encode(&tmp)
13421
cdf69667593b partial room implementation
alfadur
parents: 12142
diff changeset
    23
}