diff options
| author | Naz <ndpm13@ch-naseem.com> | 2025-09-15 14:50:08 +0100 |
|---|---|---|
| committer | Naz <ndpm13@ch-naseem.com> | 2025-09-15 15:08:15 +0100 |
| commit | 8b5a71dd3a490718540a7e9d48da2a220256a628 (patch) | |
| tree | b1e029fad2a636dabcf053192ded8542e530b3d1 /src/lib.rs | |
| parent | c53617755ea9f98c8c8e36901db90e19e827a483 (diff) | |
✨feat: dirty commit bringing basic functionality
Diffstat (limited to 'src/lib.rs')
| -rw-r--r-- | src/lib.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..c328a44 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,29 @@ +mod config; +mod errors; +mod handlers; +mod models; + +pub use errors::{Error, Result}; + +use std::net::{IpAddr, Ipv6Addr, SocketAddr}; + +use axum::{Router, routing::get}; +use tokio::net::TcpListener; +use tower_http::services::ServeFile; + +pub async fn run() -> Result<()> { + let config = config::Config::new()?; + + let app = Router::new() + .nest_service("/static/style.css", ServeFile::new(&config.style_file)) + .nest_service("/static/favicon.svg", ServeFile::new(&config.favicon_file)) + .route("/", get(handlers::handler)) + .with_state(config.clone()); + + let socket = SocketAddr::new(IpAddr::V6(Ipv6Addr::LOCALHOST), config.port); + let listener = TcpListener::bind(socket).await?; + + axum::serve(listener, app).await?; + + Ok(()) +} |
