1pub mod kcp2k;
2pub mod kcp2k_client;
3pub mod kcp2k_common;
4pub mod kcp2k_config;
5pub mod kcp2k_connection;
6pub mod kcp2k_server;
7
8pub use revel_cell;
9
10#[cfg(test)]
11mod tests {
12 use crate::kcp2k_client::Kcp2KClient;
13 use crate::kcp2k_common::{Callback, CallbackType, Kcp2KChannel};
14 use crate::kcp2k_config::Kcp2KConfig;
15 use crate::kcp2k_connection::Kcp2kConnection;
16 use crate::kcp2k_server::Kcp2KServer;
17 use std::time::{SystemTime, UNIX_EPOCH};
18
19 pub fn call_back(conn: &Kcp2kConnection, cb: Callback) {
20 println!("{}", cb);
21
22 let now = SystemTime::now();
23 let seconds_since_epoch = now.duration_since(UNIX_EPOCH).expect("Time went backwards").as_millis();
24 let time = seconds_since_epoch.to_le_bytes();
26
27 match cb.r#type {
28 CallbackType::OnConnected => {
29 let _ = conn.send_data(time.as_slice(), Kcp2KChannel::Unreliable);
30 }
31 CallbackType::OnData => {
32 let _ = conn.send_data(time.as_slice(), Kcp2KChannel::Reliable);
33 }
34 CallbackType::OnError => {}
35 CallbackType::OnDisconnected => {}
36 }
37 }
38
39 #[test]
40 pub fn test_server() {
41 env_logger::init();
42 let config = Kcp2KConfig::default();
43
44 let server = Kcp2KServer::new("0.0.0.0:3100".to_string(), config, call_back);
45
46 loop {
47 server.tick();
48 }
49 }
50
51 #[test]
52 pub fn test_client() {
53 env_logger::init();
54 let config = Kcp2KConfig::default();
55
56 let client = Kcp2KClient::new(config, call_back);
57
58 client.connect("127.0.0.1:3100".to_string());
59
60 loop {
61 client.tick();
62 }
63 }
64}