refactor: improve cargo doc features
Diff
src/compression.rs | 4 ++++
src/directory_listing.rs | 4 ++--
src/handler.rs | 4 ++++
src/lib.rs | 2 ++
src/settings/file.rs | 12 ++++++++++++
src/signals.rs | 2 ++
src/static_files.rs | 3 +++
7 files changed, 29 insertions(+), 2 deletions(-)
@@ -115,6 +115,7 @@ pub fn auto(
#[cfg(feature = "compression-gzip")]
#[cfg_attr(docsrs, doc(cfg(feature = "compression-gzip")))]
pub fn gzip(
mut head: http::response::Parts,
body: CompressableBody<Body, hyper::Error>,
@@ -131,6 +132,7 @@ pub fn gzip(
#[cfg(feature = "compression-deflate")]
#[cfg_attr(docsrs, doc(cfg(feature = "compression-deflate")))]
pub fn deflate(
mut head: http::response::Parts,
body: CompressableBody<Body, hyper::Error>,
@@ -152,6 +154,7 @@ pub fn deflate(
#[cfg(feature = "compression-brotli")]
#[cfg_attr(docsrs, doc(cfg(feature = "compression-brotli")))]
pub fn brotli(
mut head: http::response::Parts,
body: CompressableBody<Body, hyper::Error>,
@@ -171,6 +174,7 @@ pub fn brotli(
#[cfg(feature = "compression-zstd")]
#[cfg_attr(docsrs, doc(cfg(feature = "compression-zstd")))]
pub fn zstd(
mut head: http::response::Parts,
body: CompressableBody<Body, hyper::Error>,
@@ -6,8 +6,6 @@
#![allow(missing_docs)]
use chrono::{DateTime, Local, NaiveDateTime, Utc};
use clap::ValueEnum;
use futures_util::future::Either;
@@ -29,7 +27,9 @@ use crate::{exts::http::MethodExt, Context, Result};
#[serde(rename_all = "lowercase")]
pub enum DirListFmt {
Html,
Json,
}
@@ -42,11 +42,14 @@ pub struct RequestHandlerOpts {
pub compression_static: bool,
#[cfg(feature = "directory-listing")]
#[cfg_attr(docsrs, doc(cfg(feature = "directory-listing")))]
pub dir_listing: bool,
#[cfg(feature = "directory-listing")]
#[cfg_attr(docsrs, doc(cfg(feature = "directory-listing")))]
pub dir_listing_order: u8,
#[cfg(feature = "directory-listing")]
#[cfg_attr(docsrs, doc(cfg(feature = "directory-listing")))]
pub dir_listing_format: DirListFmt,
@@ -65,6 +68,7 @@ pub struct RequestHandlerOpts {
pub page_fallback: Vec<u8>,
#[cfg(feature = "basic-auth")]
#[cfg_attr(docsrs, doc(cfg(feature = "basic-auth")))]
pub basic_auth: String,
pub log_remote_address: bool,
@@ -138,6 +138,7 @@ pub mod server;
pub mod service;
pub mod settings;
#[cfg(any(unix, windows))]
#[cfg_attr(docsrs, doc(cfg(any(unix, windows))))]
pub mod signals;
pub mod static_files;
#[cfg(feature = "http2")]
@@ -145,6 +146,7 @@ pub mod static_files;
pub mod tls;
pub mod transport;
#[cfg(windows)]
#[cfg_attr(docsrs, doc(cfg(windows)))]
pub mod winservice;
#[macro_use]
pub mod error;
@@ -135,25 +135,32 @@ pub struct General {
#[cfg(feature = "http2")]
#[cfg_attr(docsrs, doc(cfg(feature = "http2")))]
pub http2: Option<bool>,
#[cfg(feature = "http2")]
#[cfg_attr(docsrs, doc(cfg(feature = "http2")))]
pub http2_tls_cert: Option<PathBuf>,
#[cfg(feature = "http2")]
#[cfg_attr(docsrs, doc(cfg(feature = "http2")))]
pub http2_tls_key: Option<PathBuf>,
#[cfg(feature = "http2")]
#[cfg_attr(docsrs, doc(cfg(feature = "http2")))]
pub https_redirect: Option<bool>,
#[cfg(feature = "http2")]
#[cfg_attr(docsrs, doc(cfg(feature = "http2")))]
pub https_redirect_host: Option<String>,
#[cfg(feature = "http2")]
#[cfg_attr(docsrs, doc(cfg(feature = "http2")))]
pub https_redirect_from_port: Option<u16>,
#[cfg(feature = "http2")]
#[cfg_attr(docsrs, doc(cfg(feature = "http2")))]
pub https_redirect_from_hosts: Option<String>,
@@ -168,15 +175,20 @@ pub struct General {
#[cfg(feature = "directory-listing")]
#[cfg_attr(docsrs, doc(cfg(feature = "directory-listing")))]
pub directory_listing: Option<bool>,
#[cfg(feature = "directory-listing")]
#[cfg_attr(docsrs, doc(cfg(feature = "directory-listing")))]
pub directory_listing_order: Option<u8>,
#[cfg(feature = "directory-listing")]
#[cfg_attr(docsrs, doc(cfg(feature = "directory-listing")))]
pub directory_listing_format: Option<DirListFmt>,
#[cfg(feature = "basic-auth")]
#[cfg_attr(docsrs, doc(cfg(feature = "basic-auth")))]
pub basic_auth: Option<String>,
@@ -18,6 +18,7 @@ use {
use {std::sync::Arc, tokio::sync::watch::Receiver, tokio::sync::Mutex};
#[cfg(unix)]
#[cfg_attr(docsrs, doc(cfg(unix)))]
pub fn create_signals() -> Result<Signals> {
Ok(Signals::new([SIGHUP, SIGTERM, SIGINT, SIGQUIT])?)
@@ -58,6 +59,7 @@ async fn delay_graceful_shutdown(grace_period_secs: u8) {
}
#[cfg(windows)]
#[cfg_attr(docsrs, doc(cfg(windows)))]
pub async fn wait_for_ctrl_c(cancel_recv: Arc<Mutex<Option<Receiver<()>>>>, grace_period_secs: u8) {
if let Some(receiver) = &mut *cancel_recv.lock().await {
@@ -50,12 +50,15 @@ pub struct HandleOpts<'a> {
pub uri_query: Option<&'a str>,
#[cfg(feature = "directory-listing")]
#[cfg_attr(docsrs, doc(cfg(feature = "directory-listing")))]
pub dir_listing: bool,
#[cfg(feature = "directory-listing")]
#[cfg_attr(docsrs, doc(cfg(feature = "directory-listing")))]
pub dir_listing_order: u8,
#[cfg(feature = "directory-listing")]
#[cfg_attr(docsrs, doc(cfg(feature = "directory-listing")))]
pub dir_listing_format: &'a DirListFmt,
pub redirect_trailing_slash: bool,