umbral_core/lib.rs
1//! umbral internals: ORM, migrations, routing, DB backends, the Plugin trait.
2//!
3//! Do not depend on this crate directly. Use the `umbral` facade.
4//!
5//! Status: M0 shipped — Settings, db pool, web re-exports, App builder.
6
7pub mod api_error;
8pub mod app;
9pub mod auth_contract;
10pub mod backend;
11pub mod backup;
12pub mod check;
13pub mod cli;
14pub mod cors;
15pub mod db;
16pub mod errors;
17pub mod fixtures;
18pub mod forms;
19pub(crate) mod hosts;
20pub mod inspect;
21pub mod middleware;
22pub mod validate;
23pub use inventory;
24
25pub mod migrate;
26pub mod orm;
27pub mod pagination;
28pub mod plugin;
29pub mod ratelimit;
30pub mod routes;
31pub mod settings;
32pub mod shutdown;
33pub mod signals;
34pub mod slash;
35pub mod static_files;
36pub mod storage;
37pub mod templates;
38pub mod timezone;
39pub mod typegen;
40pub mod web;
41
42/// Top-level transaction helper. Sugar for `umbral_core::db::transaction`.
43///
44/// Exposes `umbral_core::transaction(|tx| async { ... })` at the crate root
45/// so the facade re-export becomes `umbral::transaction(...)`.
46pub use db::{transaction, transaction_pg, transaction_sqlite};
47
48/// Re-export of `sea_query` for use in macro-generated code.
49///
50/// The `#[derive(Model)]` macro emits `::umbral::_sea_query::Value` in the
51/// `HydrateRelated::write_pending_m2m` body (form-staged M2M junction
52/// writes). Routing through this re-export means user crates don't need a
53/// direct `sea-query` dep for the generated code to compile.
54#[doc(hidden)]
55pub use sea_query as _sea_query;