mod routes; mod structs; mod database; use actix_web::{web, App, HttpServer}; use dotenv::dotenv; use std::sync::Arc; struct AppState { database: database::DatabaseWrapper } #[actix_web::main] async fn main() -> std::io::Result<()> { dotenv().ok(); let app_state_raw = database::DatabaseWrapper::new().await.expect("Something went wrong -- DatabaseWrapper::new()"); let app_state = Arc::new(app_state_raw); HttpServer::new(move || { App::new() .app_data(web::Data::new(Arc::clone(&app_state))) .route("/", web::get().to(root)) .service(routes::song::song) .service(routes::album::album) .service(routes::artist::artist) }) .bind(("127.0.0.1", 8000))? .run() .await } async fn root() -> String { String::from("Server is up and running") }