Rust Web frame work
``` rust use nucleushttp::{ request::Request, routes::{Route, Router}, Server, }; use std::sync::{Arc, RwLock}; use tracingsubscriber::prelude::*; use tracing_subscriber::{fmt, EnvFilter};
struct AppState {
greeting: String,
bye: String,
views: Arc
async fn main() -> tokio::io::Result<()> { let fmtlayer = fmt::layer() .withtarget(false) .withthreadnames(true) .pretty(); let filterlayer = EnvFilter::tryfromdefaultenv() .orelse(|| EnvFilter::trynew("debug")) .unwrap(); tracingsubscriber::registry() .with(filterlayer) .with(fmtlayer) .init(); let listenerip = "0.0.0.0:7878"; log::info!("Listening on {listenerip}");
let state = AppState {
greeting: "HI".to_owned(),
bye: "Bye".to_owned(),
views: Arc::new(RwLock::new(0)),
};
let mut router = Router::new(state);
let route = Route::get("/state", print_greeting);
router.add_route(route).await;
router.add_route(Route::get("/hello", get)).await;
router.add_route(Route::get_static("/", "index.html")).await;
let server = Server::bind(listener_ip, router.clone(), "./").await?;
server.serve().await.unwrap();
Ok(())
}
async fn printgreeting(state: AppState, request: Request) -> Result
async fn get(: AppState, _: Request) -> Result