#![allow(proc_macro_derive_resolution_fallback)] #[macro_use] extern crate diesel; extern crate serde; extern crate sqlite3; use actix_web::{ HttpServer, Responder, middleware, App}; use diesel::sqlite::SqliteConnection; use std::time::Duration; mod routes; use self::routes::{index,projects,skills}; use diesel::r2d2::{self, ConnectionManager}; type DbPool = r2d2::Pool>; #[actix_web::main] async fn main() -> std::io::Result<()> { // set up database connection pool let connspec = std::env::var("DATABASE_URL").expect("DATABASE_URL"); let manager = ConnectionManager::::new(connspec); let pool = r2d2::Pool::builder() .build(manager) .expect("Failed to create pool."); HttpServer::new(move || { App::new() .data(pool.clone()) .service(index) .service(projects) .service(skills) }) .bind("127.0.0.1:8080")? .run() .await }