gameServer2/src/utils.rs
author Wuzzy <Wuzzy2@mail.ru>
Tue, 28 Aug 2018 05:46:33 +0200
changeset 13715 0da36902e5b6
parent 13529 5359ff75da3a
child 13806 5fb40c8e5542
permissions -rw-r--r--
Space Invasion: Continue playing rounds in case the teams are tied at the end Rules in case of a tie: 1) Eliminate all teams not tied for the lead 2) Play another round with the remaining teams 3) Check for the winner again at the end of that round. If there's another tie, repeat the procedure
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;
13529
5359ff75da3a indulge clippy
alfadur
parents: 13428
diff changeset
     6
pub const SERVER: mio::Token = mio::Token(1_000_000_000);
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
}