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;
|
use ezidam::rocket_setup;
|
||||||
mod error;
|
use rocket::{main, Error};
|
||||||
mod file_from_bytes;
|
|
||||||
mod page;
|
|
||||||
mod response_timer;
|
|
||||||
mod routes;
|
|
||||||
mod shutdown;
|
|
||||||
|
|
||||||
// see for using rocket with main function https://github.com/intellij-rust/intellij-rust/issues/5975#issuecomment-920620289
|
// see for using rocket with main function https://github.com/intellij-rust/intellij-rust/issues/5975#issuecomment-920620289
|
||||||
#[rocket::main]
|
#[main]
|
||||||
async fn main() -> std::result::Result<(), rocket::Error> {
|
async fn main() -> Result<(), Error> {
|
||||||
// Build server
|
// Rocket with default settings
|
||||||
let rocket_builder = rocket::build();
|
let rocket_builder = rocket::build();
|
||||||
|
|
||||||
// Response timer
|
// Setup server
|
||||||
let rocket_builder = response_timer::ResponseTimer::rocket(rocket_builder);
|
let rocket_builder = rocket_setup(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);
|
|
||||||
|
|
||||||
// Launch server
|
// Launch server
|
||||||
let _ = rocket_builder
|
let _ = rocket_builder
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue