mod app;
pub mod codegen;
#[cfg(feature = "sqlite")]
pub mod db;
pub mod env;
mod island;
mod request;
mod response;
#[doc(hidden)]
pub use dotenvy_macro;
pub use app::App;
pub use request::{Body, BodyParseError, Req};
pub use response::Res;
pub use axum::extract::Path;
#[doc(hidden)]
pub use axum::extract::State;
#[doc(hidden)]
pub use axum::{Router, routing};
pub use island::island_fn;
pub use maud::{DOCTYPE, Markup, PreEscaped, html};
pub use serde_json::json;
pub type Children = Markup;
#[macro_export]
macro_rules! env {
($key:expr) => {
$crate::dotenvy_macro::dotenv!($key)
};
}
#[doc(hidden)]
#[derive(Clone, Copy)]
pub struct NoState;
#[macro_export]
macro_rules! routes {
() => {
#[allow(dead_code)]
type __RejoiceState = rejoice::NoState;
include!(concat!(env!("OUT_DIR"), "/routes_generated_stateless.rs"));
};
($state:ty) => {
#[allow(dead_code)]
type __RejoiceState = $state;
include!(concat!(env!("OUT_DIR"), "/routes_generated_stateful.rs"));
};
}
pub mod prelude {
pub use crate::{
App, Children, DOCTYPE, Markup, Path, PreEscaped, Req, Res, html, island, json,
};
}