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:
Jonas Platte 2022-02-17 11:43:16 +01:00 committed by GitHub
parent 6bd8b8a232
commit 2b608c4532
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 10 additions and 14 deletions

View file

@ -90,6 +90,5 @@ features = [
"http2",
"json",
"multipart",
"tower",
"ws",
]

View file

@ -52,6 +52,7 @@ use std::sync::Arc;
/// # axum::Server::bind(&"".parse().unwrap()).serve(app.into_make_service()).await.unwrap();
/// # };
/// ```
#[cfg_attr(docsrs, doc(cfg(feature = "matched-path")))]
#[derive(Clone, Debug)]
pub struct MatchedPath(pub(crate) Arc<str>);

View file

@ -9,7 +9,6 @@ pub mod path;
pub mod rejection;
#[cfg(feature = "ws")]
#[cfg_attr(docsrs, doc(cfg(feature = "ws")))]
pub mod ws;
mod content_length_limit;
@ -43,35 +42,28 @@ pub use crate::Json;
mod matched_path;
#[cfg(feature = "matched-path")]
#[cfg_attr(docsrs, doc(cfg(feature = "matched-path")))]
#[doc(inline)]
pub use self::matched_path::MatchedPath;
#[cfg(feature = "multipart")]
#[cfg_attr(docsrs, doc(cfg(feature = "multipart")))]
pub mod multipart;
#[cfg(feature = "multipart")]
#[cfg_attr(docsrs, doc(cfg(feature = "multipart")))]
#[doc(inline)]
pub use self::multipart::Multipart;
#[cfg(feature = "original-uri")]
#[cfg_attr(docsrs, doc(cfg(feature = "original-uri")))]
#[doc(inline)]
pub use self::request_parts::OriginalUri;
#[cfg(feature = "ws")]
#[cfg_attr(docsrs, doc(cfg(feature = "ws")))]
#[doc(inline)]
pub use self::ws::WebSocketUpgrade;
#[cfg(feature = "headers")]
#[cfg_attr(docsrs, doc(cfg(feature = "headers")))]
mod typed_header;
#[cfg(feature = "headers")]
#[cfg_attr(docsrs, doc(cfg(feature = "headers")))]
#[doc(inline)]
pub use self::typed_header::TypedHeader;

View file

@ -43,6 +43,7 @@ use std::{
///
/// For security reasons it's recommended to combine this with
/// [`ContentLengthLimit`](super::ContentLengthLimit) to limit the size of the request payload.
#[cfg_attr(docsrs, doc(cfg(feature = "multipart")))]
#[derive(Debug)]
pub struct Multipart {
inner: multer::Multipart<'static>,

View file

@ -18,9 +18,11 @@ define_rejection! {
pub struct InvalidJsonBody(Error);
}
#[cfg(feature = "json")]
define_rejection! {
#[status = UNSUPPORTED_MEDIA_TYPE]
#[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`
/// header is missing.
pub struct MissingJsonContentType;
@ -163,17 +165,21 @@ composite_rejection! {
}
}
#[cfg(feature = "matched-path")]
define_rejection! {
#[status = INTERNAL_SERVER_ERROR]
#[body = "No matched path found"]
/// Rejection if no matched path could be found.
///
/// See [`MatchedPath`](super::MatchedPath) for more details.
#[cfg_attr(docsrs, doc(cfg(feature = "matched-path")))]
pub struct MatchedPathMissing;
}
#[cfg(feature = "matched-path")]
composite_rejection! {
/// Rejection used for [`MatchedPath`](super::MatchedPath).
#[cfg_attr(docsrs, doc(cfg(feature = "matched-path")))]
pub enum MatchedPathRejection {
MatchedPathMissing,
}
@ -234,5 +240,4 @@ where
}
#[cfg(feature = "headers")]
#[cfg_attr(docsrs, doc(cfg(feature = "headers")))]
pub use super::typed_header::{TypedHeaderRejection, TypedHeaderRejectionReason};

View file

@ -30,7 +30,6 @@ use std::ops::Deref;
/// # axum::Server::bind(&"".parse().unwrap()).serve(app.into_make_service()).await.unwrap();
/// # };
/// ```
#[cfg(feature = "headers")]
#[cfg_attr(docsrs, doc(cfg(feature = "headers")))]
#[derive(Debug, Clone, Copy)]
pub struct TypedHeader<T>(pub T);
@ -68,7 +67,6 @@ impl<T> Deref for TypedHeader<T> {
/// Rejection used for [`TypedHeader`](super::TypedHeader).
#[cfg(feature = "headers")]
#[cfg_attr(docsrs, doc(cfg(feature = "headers")))]
#[derive(Debug)]
pub struct TypedHeaderRejection {
name: &'static http::header::HeaderName,

View file

@ -103,6 +103,7 @@ use tokio_tungstenite::{
///
/// See the [module docs](self) for an example.
#[derive(Debug)]
#[cfg_attr(docsrs, doc(cfg(feature = "ws")))]
pub struct WebSocketUpgrade {
config: WebSocketConfig,
/// The chosen protocol sent in the `Sec-WebSocket-Protocol` header of the response.

View file

@ -389,7 +389,7 @@
#![deny(unreachable_pub, private_in_public)]
#![allow(elided_lifetimes_in_paths, clippy::type_complexity)]
#![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))]
#[macro_use]

View file

@ -204,7 +204,6 @@ impl Event {
///
/// Panics if `data` or `json_data` have already been called.
#[cfg(feature = "json")]
#[cfg_attr(docsrs, doc(cfg(feature = "json")))]
pub fn json_data<T>(mut self, data: T) -> serde_json::Result<Event>
where
T: serde::Serialize,