#![allow(dead_code)]
use std::env;
use tokio::runtime::Builder;
use tokio::net::TcpListener;
pub struct App
{
}
impl App
{
pub fn new() -> Self
{
Self {}
}
pub fn version( &self ) -> String
{
env::var("CARGO_PKG_VERSION")
.unwrap_or_else(|_| String::from("unknown"))
}
pub fn run( &self )
{
let runtime = Builder::new_multi_thread()
.enable_all()
.worker_threads(4)
.build()
.unwrap();
runtime.block_on(async
{
println!("sokoke: {}", self.version());
let listener = TcpListener::bind("127.0.0.1:3000").await.unwrap();
self.serve(listener).await;
});
}
async fn serve( &self, tcp_listener: TcpListener )
{
loop
{
let (_stream, _remote_addr) = tcp_listener.accept().await.unwrap();
}
}
}
#[cfg(test)]
mod tests
{
use super::*;
#[test]
fn test_app()
{
let app = App::new();
app.run();
}
}