Skip to main content

okapi_operation/
lib.rs

1#![allow(rustdoc::bare_urls)]
2#![doc = include_str!("../docs/root.md")]
3
4pub use anyhow;
5#[doc(no_inline)]
6pub use okapi::{
7    self,
8    openapi3::OpenApi,
9    schemars::{self, JsonSchema},
10};
11#[cfg(feature = "macro")]
12#[doc(inline)]
13pub use okapi_operation_macro::openapi;
14
15#[cfg(feature = "axum")]
16pub mod axum_integration;
17
18use okapi::openapi3::Operation;
19
20#[doc(hidden)]
21pub use self::builder::BuilderOptions;
22pub use self::{
23    builder::OpenApiBuilder,
24    components::{Components, ComponentsBuilder},
25    to_media_types::ToMediaTypes,
26    to_responses::ToResponses,
27};
28
29mod builder;
30mod components;
31mod to_media_types;
32mod to_responses;
33
34/// Empty type alias (for using in attribute values).
35pub type Empty = ();
36
37// TODO: allow return RefOr<Operation>
38/// Operation generator signature.
39pub type OperationGenerator =
40    fn(&mut Components, &BuilderOptions) -> Result<Operation, anyhow::Error>;
41
42#[cfg(feature = "macro")]
43#[doc(hidden)]
44pub mod _macro_prelude {
45    pub use okapi;
46
47    pub use crate::{Components, ToMediaTypes, ToResponses};
48}