gameServer2/src/utils.rs
changeset 14420 06672690d71b
parent 14419 6843c4551cde
child 14421 96624a6cdb93
equal deleted inserted replaced
14419:6843c4551cde 14420:06672690d71b
     1 use std::iter::Iterator;
       
     2 use mio;
       
     3 use base64::{encode};
       
     4 
       
     5 pub const PROTOCOL_VERSION : u32 = 3;
       
     6 pub const SERVER: mio::Token = mio::Token(1_000_000_000);
       
     7 
       
     8 pub fn is_name_illegal(name: &str ) -> bool{
       
     9     name.len() > 40 ||
       
    10         name.trim().is_empty() ||
       
    11         name.chars().any(|c|
       
    12             "$()*+?[]^{|}\x7F".contains(c) ||
       
    13                 '\x00' <= c && c <= '\x1F')
       
    14 }
       
    15 
       
    16 pub fn to_engine_msg<T>(msg: T) -> String
       
    17     where T: Iterator<Item = u8> + Clone
       
    18 {
       
    19     let mut tmp = Vec::new();
       
    20     tmp.push(msg.clone().count() as u8);
       
    21     tmp.extend(msg);
       
    22     encode(&tmp)
       
    23 }
       
    24 
       
    25 pub fn protocol_version_string(protocol_number: u16) -> &'static str {
       
    26     match protocol_number {
       
    27         17 => "0.9.7-dev",
       
    28         19 => "0.9.7",
       
    29         20 => "0.9.8-dev",
       
    30         21 => "0.9.8",
       
    31         22 => "0.9.9-dev",
       
    32         23 => "0.9.9",
       
    33         24 => "0.9.10-dev",
       
    34         25 => "0.9.10",
       
    35         26 => "0.9.11-dev",
       
    36         27 => "0.9.11",
       
    37         28 => "0.9.12-dev",
       
    38         29 => "0.9.12",
       
    39         30 => "0.9.13-dev",
       
    40         31 => "0.9.13",
       
    41         32 => "0.9.14-dev",
       
    42         33 => "0.9.14",
       
    43         34 => "0.9.15-dev",
       
    44         35 => "0.9.14.1",
       
    45         37 => "0.9.15",
       
    46         38 => "0.9.16-dev",
       
    47         39 => "0.9.16",
       
    48         40 => "0.9.17-dev",
       
    49         41 => "0.9.17",
       
    50         42 => "0.9.18-dev",
       
    51         43 => "0.9.18",
       
    52         44 => "0.9.19-dev",
       
    53         45 => "0.9.19",
       
    54         46 => "0.9.20-dev",
       
    55         47 => "0.9.20",
       
    56         48 => "0.9.21-dev",
       
    57         49 => "0.9.21",
       
    58         50 => "0.9.22-dev",
       
    59         51 => "0.9.22",
       
    60         52 => "0.9.23-dev",
       
    61         53 => "0.9.23",
       
    62         54 => "0.9.24-dev",
       
    63         55 => "0.9.24",
       
    64         56 => "0.9.25-dev",
       
    65         _ => "Unknown"
       
    66     }
       
    67 }