Skip to main content

trillium_api/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(
3    missing_copy_implementations,
4    rustdoc::missing_crate_level_docs,
5    missing_debug_implementations,
6    missing_docs,
7    nonstandard_style,
8    unused_qualifications
9)]
10#![doc = include_str!("../docs/root.md")]
11#![cfg_attr(docsrs, feature(doc_cfg))]
12
13mod api_conn_ext;
14mod api_handler;
15mod before_send;
16mod body;
17mod cancel_on_disconnect;
18mod error;
19mod from_conn;
20mod halt;
21#[cfg(any(feature = "serde_json", feature = "sonic-rs"))]
22mod json;
23mod state;
24mod try_from_conn;
25
26pub use api_conn_ext::ApiConnExt;
27pub use api_handler::{ApiHandler, api};
28pub use before_send::BeforeSend;
29pub use body::Body;
30pub use cancel_on_disconnect::{CancelOnDisconnect, cancel_on_disconnect};
31pub use error::Error;
32pub use from_conn::FromConn;
33pub use halt::Halt;
34#[cfg(any(feature = "serde_json", feature = "sonic-rs"))]
35#[cfg_attr(docsrs, doc(cfg(any(feature = "serde_json", feature = "sonic-rs"))))]
36pub use json::Json;
37
38#[cfg(all(feature = "serde_json", feature = "sonic-rs"))]
39compile_error!("cargo features \"serde_json\" and \"sonic-rs\" are mutually exclusive");
40
41#[cfg(feature = "serde_json")]
42#[cfg_attr(docsrs, doc(cfg(feature = "serde_json")))]
43pub use serde_json::{Value, json};
44#[cfg(feature = "sonic-rs")]
45#[cfg_attr(docsrs, doc(cfg(feature = "sonic-rs")))]
46pub use sonic_rs::{Value, json};
47pub use state::State;
48pub use try_from_conn::TryFromConn;
49
50/// trait alias for a result with this crate's [`Error`]
51pub type Result<T> = std::result::Result<T, Error>;
52
53#[cfg(doc)]
54#[doc = include_str!("../docs/extractors.md")]
55pub mod extractors {
56    #[doc = include_str!("../docs/extractors/custom.md")]
57    pub mod custom {}
58}
59
60#[cfg(doc)]
61#[doc = include_str!("../docs/return_types.md")]
62pub mod return_types {}
63
64#[cfg(doc)]
65#[doc = include_str!("../docs/error_handling.md")]
66pub mod error_handling {}
67
68#[cfg(doc)]
69#[doc = include_str!("../docs/recipes.md")]
70pub mod recipes {}
71
72#[cfg(test)]
73#[doc = include_str!("../README.md")]
74mod readme {}