webdav_server/app/mod.rs
1//! Application state and its builder.
2//!
3//! This module provides [`State`], the shared application context that Axum injects
4//! into every route handler, and [`AppStateBuilder`], the fluent builder used to
5//! construct it during startup and in tests.
6//!
7//! ## Design note
8//!
9//! `State` is intentionally cheap to clone: the `SqlitePool` and `session_cache` both
10//! use `Arc`-backed shared ownership internally, and `Service` is a thin wrapper over
11//! a `PathBuf`. Cloning `State` is therefore an O(1) reference-count increment.
12pub mod state;
13pub use state::State;
14mod builder;
15
16pub use builder::AppStateBuilder;