use config::Config; use tide::{http::StatusCode, Request, Response}; #[async_std::main] async fn main() -> tide::Result<()> { let settings = Config::builder() .set_default("address", "127.0.0.1")? .set_default("port", "9090")? .add_source( config::Environment::with_prefix("MTT") .try_parsing(true) .separator("_") .list_separator(" "), ) .build() .unwrap(); let app = app_setup().await; app.listen(format!( "{}:{}", settings.get_string("address").unwrap(), settings.get_string("port").unwrap() )) .await?; Ok(()) } async fn app_setup() -> tide::Server<()> { let mut app = tide::new(); app.at("/").get(home); return app; } async fn home(_req: Request<()>) -> tide::Result { let mut res = Response::new(StatusCode::Ok); res.set_body("

Welcome to BaskinPrattle.

The code for the site is here.

And the latest x86_64 Linux build is here.

"); res.append_header("Content-Type", "text/html; charset=UTF-8"); Ok(res) } #[cfg(test)] mod basic_tests { use super::*; use tide_testing::TideTestingExt; #[async_std::test] async fn home_page_available() { let app = app_setup().await; let response = app.get("/").await.unwrap(); assert_eq!(response.status(), StatusCode::Ok); } }