#[macro_use]
extern crate runique;
use runique::prelude::*;
mod forms;
mod models;
mod url;
mod views;
use runique::app::builder::RuniqueAppBuilder as builder;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
tracing_subscriber::fmt::init();
let config: RuniqueConfig = RuniqueConfig::from_env();
let db_config = DatabaseConfig::from_env()?.build();
let db = db_config.connect().await?;
builder::new(config)
.routes(url::routes())
.with_database(db)
.statics()
.build()
.await
.map_err(|e| -> Box<dyn std::error::Error> { Box::new(e) })?
.run()
.await?;
Ok(())
}