summaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
authorNaz <ndpm13@ch-naseem.com>2025-09-15 14:50:08 +0100
committerNaz <ndpm13@ch-naseem.com>2025-09-15 15:08:15 +0100
commit8b5a71dd3a490718540a7e9d48da2a220256a628 (patch)
treeb1e029fad2a636dabcf053192ded8542e530b3d1 /src/lib.rs
parentc53617755ea9f98c8c8e36901db90e19e827a483 (diff)
✨feat: dirty commit bringing basic functionality
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs29
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(())
+}