mirror of
https://github.com/tokio-rs/axum.git
synced 2025-01-01 08:56:15 +01:00
Fix doc(cfg)s (#765)
* Use automatic doc(cfg) attributes where possible * Add missing feature documentation * Replace redundant cfg attribute with doc(cfg) * Remove non-existent feature from package.metadata.playground.features * Add missing cfg's on rejection types
This commit is contained in:
parent
6bd8b8a232
commit
2b608c4532
9 changed files with 10 additions and 14 deletions
|
@ -90,6 +90,5 @@ features = [
|
||||||
"http2",
|
"http2",
|
||||||
"json",
|
"json",
|
||||||
"multipart",
|
"multipart",
|
||||||
"tower",
|
|
||||||
"ws",
|
"ws",
|
||||||
]
|
]
|
||||||
|
|
|
@ -52,6 +52,7 @@ use std::sync::Arc;
|
||||||
/// # axum::Server::bind(&"".parse().unwrap()).serve(app.into_make_service()).await.unwrap();
|
/// # axum::Server::bind(&"".parse().unwrap()).serve(app.into_make_service()).await.unwrap();
|
||||||
/// # };
|
/// # };
|
||||||
/// ```
|
/// ```
|
||||||
|
#[cfg_attr(docsrs, doc(cfg(feature = "matched-path")))]
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub struct MatchedPath(pub(crate) Arc<str>);
|
pub struct MatchedPath(pub(crate) Arc<str>);
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,6 @@ pub mod path;
|
||||||
pub mod rejection;
|
pub mod rejection;
|
||||||
|
|
||||||
#[cfg(feature = "ws")]
|
#[cfg(feature = "ws")]
|
||||||
#[cfg_attr(docsrs, doc(cfg(feature = "ws")))]
|
|
||||||
pub mod ws;
|
pub mod ws;
|
||||||
|
|
||||||
mod content_length_limit;
|
mod content_length_limit;
|
||||||
|
@ -43,35 +42,28 @@ pub use crate::Json;
|
||||||
mod matched_path;
|
mod matched_path;
|
||||||
|
|
||||||
#[cfg(feature = "matched-path")]
|
#[cfg(feature = "matched-path")]
|
||||||
#[cfg_attr(docsrs, doc(cfg(feature = "matched-path")))]
|
|
||||||
#[doc(inline)]
|
#[doc(inline)]
|
||||||
pub use self::matched_path::MatchedPath;
|
pub use self::matched_path::MatchedPath;
|
||||||
|
|
||||||
#[cfg(feature = "multipart")]
|
#[cfg(feature = "multipart")]
|
||||||
#[cfg_attr(docsrs, doc(cfg(feature = "multipart")))]
|
|
||||||
pub mod multipart;
|
pub mod multipart;
|
||||||
|
|
||||||
#[cfg(feature = "multipart")]
|
#[cfg(feature = "multipart")]
|
||||||
#[cfg_attr(docsrs, doc(cfg(feature = "multipart")))]
|
|
||||||
#[doc(inline)]
|
#[doc(inline)]
|
||||||
pub use self::multipart::Multipart;
|
pub use self::multipart::Multipart;
|
||||||
|
|
||||||
#[cfg(feature = "original-uri")]
|
#[cfg(feature = "original-uri")]
|
||||||
#[cfg_attr(docsrs, doc(cfg(feature = "original-uri")))]
|
|
||||||
#[doc(inline)]
|
#[doc(inline)]
|
||||||
pub use self::request_parts::OriginalUri;
|
pub use self::request_parts::OriginalUri;
|
||||||
|
|
||||||
#[cfg(feature = "ws")]
|
#[cfg(feature = "ws")]
|
||||||
#[cfg_attr(docsrs, doc(cfg(feature = "ws")))]
|
|
||||||
#[doc(inline)]
|
#[doc(inline)]
|
||||||
pub use self::ws::WebSocketUpgrade;
|
pub use self::ws::WebSocketUpgrade;
|
||||||
|
|
||||||
#[cfg(feature = "headers")]
|
#[cfg(feature = "headers")]
|
||||||
#[cfg_attr(docsrs, doc(cfg(feature = "headers")))]
|
|
||||||
mod typed_header;
|
mod typed_header;
|
||||||
|
|
||||||
#[cfg(feature = "headers")]
|
#[cfg(feature = "headers")]
|
||||||
#[cfg_attr(docsrs, doc(cfg(feature = "headers")))]
|
|
||||||
#[doc(inline)]
|
#[doc(inline)]
|
||||||
pub use self::typed_header::TypedHeader;
|
pub use self::typed_header::TypedHeader;
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@ use std::{
|
||||||
///
|
///
|
||||||
/// For security reasons it's recommended to combine this with
|
/// For security reasons it's recommended to combine this with
|
||||||
/// [`ContentLengthLimit`](super::ContentLengthLimit) to limit the size of the request payload.
|
/// [`ContentLengthLimit`](super::ContentLengthLimit) to limit the size of the request payload.
|
||||||
|
#[cfg_attr(docsrs, doc(cfg(feature = "multipart")))]
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct Multipart {
|
pub struct Multipart {
|
||||||
inner: multer::Multipart<'static>,
|
inner: multer::Multipart<'static>,
|
||||||
|
|
|
@ -18,9 +18,11 @@ define_rejection! {
|
||||||
pub struct InvalidJsonBody(Error);
|
pub struct InvalidJsonBody(Error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "json")]
|
||||||
define_rejection! {
|
define_rejection! {
|
||||||
#[status = UNSUPPORTED_MEDIA_TYPE]
|
#[status = UNSUPPORTED_MEDIA_TYPE]
|
||||||
#[body = "Expected request with `Content-Type: application/json`"]
|
#[body = "Expected request with `Content-Type: application/json`"]
|
||||||
|
#[cfg_attr(docsrs, doc(cfg(feature = "json")))]
|
||||||
/// Rejection type for [`Json`](super::Json) used if the `Content-Type`
|
/// Rejection type for [`Json`](super::Json) used if the `Content-Type`
|
||||||
/// header is missing.
|
/// header is missing.
|
||||||
pub struct MissingJsonContentType;
|
pub struct MissingJsonContentType;
|
||||||
|
@ -163,17 +165,21 @@ composite_rejection! {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "matched-path")]
|
||||||
define_rejection! {
|
define_rejection! {
|
||||||
#[status = INTERNAL_SERVER_ERROR]
|
#[status = INTERNAL_SERVER_ERROR]
|
||||||
#[body = "No matched path found"]
|
#[body = "No matched path found"]
|
||||||
/// Rejection if no matched path could be found.
|
/// Rejection if no matched path could be found.
|
||||||
///
|
///
|
||||||
/// See [`MatchedPath`](super::MatchedPath) for more details.
|
/// See [`MatchedPath`](super::MatchedPath) for more details.
|
||||||
|
#[cfg_attr(docsrs, doc(cfg(feature = "matched-path")))]
|
||||||
pub struct MatchedPathMissing;
|
pub struct MatchedPathMissing;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "matched-path")]
|
||||||
composite_rejection! {
|
composite_rejection! {
|
||||||
/// Rejection used for [`MatchedPath`](super::MatchedPath).
|
/// Rejection used for [`MatchedPath`](super::MatchedPath).
|
||||||
|
#[cfg_attr(docsrs, doc(cfg(feature = "matched-path")))]
|
||||||
pub enum MatchedPathRejection {
|
pub enum MatchedPathRejection {
|
||||||
MatchedPathMissing,
|
MatchedPathMissing,
|
||||||
}
|
}
|
||||||
|
@ -234,5 +240,4 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "headers")]
|
#[cfg(feature = "headers")]
|
||||||
#[cfg_attr(docsrs, doc(cfg(feature = "headers")))]
|
|
||||||
pub use super::typed_header::{TypedHeaderRejection, TypedHeaderRejectionReason};
|
pub use super::typed_header::{TypedHeaderRejection, TypedHeaderRejectionReason};
|
||||||
|
|
|
@ -30,7 +30,6 @@ use std::ops::Deref;
|
||||||
/// # axum::Server::bind(&"".parse().unwrap()).serve(app.into_make_service()).await.unwrap();
|
/// # axum::Server::bind(&"".parse().unwrap()).serve(app.into_make_service()).await.unwrap();
|
||||||
/// # };
|
/// # };
|
||||||
/// ```
|
/// ```
|
||||||
#[cfg(feature = "headers")]
|
|
||||||
#[cfg_attr(docsrs, doc(cfg(feature = "headers")))]
|
#[cfg_attr(docsrs, doc(cfg(feature = "headers")))]
|
||||||
#[derive(Debug, Clone, Copy)]
|
#[derive(Debug, Clone, Copy)]
|
||||||
pub struct TypedHeader<T>(pub T);
|
pub struct TypedHeader<T>(pub T);
|
||||||
|
@ -68,7 +67,6 @@ impl<T> Deref for TypedHeader<T> {
|
||||||
|
|
||||||
/// Rejection used for [`TypedHeader`](super::TypedHeader).
|
/// Rejection used for [`TypedHeader`](super::TypedHeader).
|
||||||
#[cfg(feature = "headers")]
|
#[cfg(feature = "headers")]
|
||||||
#[cfg_attr(docsrs, doc(cfg(feature = "headers")))]
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct TypedHeaderRejection {
|
pub struct TypedHeaderRejection {
|
||||||
name: &'static http::header::HeaderName,
|
name: &'static http::header::HeaderName,
|
||||||
|
|
|
@ -103,6 +103,7 @@ use tokio_tungstenite::{
|
||||||
///
|
///
|
||||||
/// See the [module docs](self) for an example.
|
/// See the [module docs](self) for an example.
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
#[cfg_attr(docsrs, doc(cfg(feature = "ws")))]
|
||||||
pub struct WebSocketUpgrade {
|
pub struct WebSocketUpgrade {
|
||||||
config: WebSocketConfig,
|
config: WebSocketConfig,
|
||||||
/// The chosen protocol sent in the `Sec-WebSocket-Protocol` header of the response.
|
/// The chosen protocol sent in the `Sec-WebSocket-Protocol` header of the response.
|
||||||
|
|
|
@ -389,7 +389,7 @@
|
||||||
#![deny(unreachable_pub, private_in_public)]
|
#![deny(unreachable_pub, private_in_public)]
|
||||||
#![allow(elided_lifetimes_in_paths, clippy::type_complexity)]
|
#![allow(elided_lifetimes_in_paths, clippy::type_complexity)]
|
||||||
#![forbid(unsafe_code)]
|
#![forbid(unsafe_code)]
|
||||||
#![cfg_attr(docsrs, feature(doc_cfg))]
|
#![cfg_attr(docsrs, feature(doc_auto_cfg, doc_cfg))]
|
||||||
#![cfg_attr(test, allow(clippy::float_cmp))]
|
#![cfg_attr(test, allow(clippy::float_cmp))]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
|
|
|
@ -204,7 +204,6 @@ impl Event {
|
||||||
///
|
///
|
||||||
/// Panics if `data` or `json_data` have already been called.
|
/// Panics if `data` or `json_data` have already been called.
|
||||||
#[cfg(feature = "json")]
|
#[cfg(feature = "json")]
|
||||||
#[cfg_attr(docsrs, doc(cfg(feature = "json")))]
|
|
||||||
pub fn json_data<T>(mut self, data: T) -> serde_json::Result<Event>
|
pub fn json_data<T>(mut self, data: T) -> serde_json::Result<Event>
|
||||||
where
|
where
|
||||||
T: serde::Serialize,
|
T: serde::Serialize,
|
||||||
|
|
Loading…
Reference in a new issue