refactor main into lib, with function to set up rocket
This commit is contained in:
parent
279f0bfaa3
commit
a4ff4bca20
2 changed files with 51 additions and 33 deletions
44
crates/ezidam/src/lib.rs
Normal file
44
crates/ezidam/src/lib.rs
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
use rocket::{Build, Rocket};
|
||||
|
||||
mod database;
|
||||
mod error;
|
||||
mod file_from_bytes;
|
||||
mod page;
|
||||
mod response_timer;
|
||||
mod routes;
|
||||
mod shutdown;
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests;
|
||||
|
||||
pub fn rocket_setup(rocket_builder: Rocket<Build>) -> Rocket<Build> {
|
||||
use database::Database;
|
||||
use error::catchers;
|
||||
use response_timer::ResponseTimer;
|
||||
use rocket::fs::{relative, FileServer};
|
||||
use rocket_dyn_templates::Template;
|
||||
|
||||
// Response timer
|
||||
let rocket_builder = ResponseTimer::rocket(rocket_builder);
|
||||
|
||||
// Database
|
||||
let rocket_builder = Database::rocket(rocket_builder);
|
||||
|
||||
// Templates
|
||||
let rocket_builder = rocket_builder.attach(Template::fairing());
|
||||
|
||||
// Static assets
|
||||
let rocket_builder = rocket_builder.mount("/", FileServer::from(relative!("static")));
|
||||
|
||||
// Routes
|
||||
let rocket_builder = routes::routes(rocket_builder);
|
||||
|
||||
// Errors
|
||||
let rocket_builder = catchers::register(rocket_builder);
|
||||
|
||||
// Shutdown
|
||||
let rocket_builder = shutdown::shutdown(rocket_builder);
|
||||
|
||||
#[allow(clippy::let_and_return)]
|
||||
rocket_builder
|
||||
}
|
||||
|
|
@ -1,40 +1,14 @@
|
|||
mod database;
|
||||
mod error;
|
||||
mod file_from_bytes;
|
||||
mod page;
|
||||
mod response_timer;
|
||||
mod routes;
|
||||
mod shutdown;
|
||||
use ezidam::rocket_setup;
|
||||
use rocket::{main, Error};
|
||||
|
||||
// see for using rocket with main function https://github.com/intellij-rust/intellij-rust/issues/5975#issuecomment-920620289
|
||||
#[rocket::main]
|
||||
async fn main() -> std::result::Result<(), rocket::Error> {
|
||||
// Build server
|
||||
#[main]
|
||||
async fn main() -> Result<(), Error> {
|
||||
// Rocket with default settings
|
||||
let rocket_builder = rocket::build();
|
||||
|
||||
// Response timer
|
||||
let rocket_builder = response_timer::ResponseTimer::rocket(rocket_builder);
|
||||
|
||||
// Database
|
||||
let rocket_builder = database::Database::rocket(rocket_builder);
|
||||
|
||||
// Templates
|
||||
let rocket_builder = rocket_builder.attach(rocket_dyn_templates::Template::fairing());
|
||||
|
||||
// Static assets
|
||||
let rocket_builder = rocket_builder.mount(
|
||||
"/",
|
||||
rocket::fs::FileServer::from(rocket::fs::relative!("static")),
|
||||
);
|
||||
|
||||
// Routes
|
||||
let rocket_builder = routes::routes(rocket_builder);
|
||||
|
||||
// Errors
|
||||
let rocket_builder = error::catchers::register(rocket_builder);
|
||||
|
||||
// Shutdown
|
||||
let rocket_builder = shutdown::shutdown(rocket_builder);
|
||||
// Setup server
|
||||
let rocket_builder = rocket_setup(rocket_builder);
|
||||
|
||||
// Launch server
|
||||
let _ = rocket_builder
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue