refactor: rust docs features metadata
Diff
Cargo.toml | 1 +
Makefile | 15 +++++++++++++--
docs/content/building-from-source.md | 2 +-
src/lib.rs | 24 ++++++++++++++++++++++++
src/settings/cli.rs | 5 +++++
src/settings/file.rs | 2 ++
src/settings/mod.rs | 2 +-
7 files changed, 47 insertions(+), 4 deletions(-)
@@ -26,6 +26,7 @@ autoexamples = true
[package.metadata.docs.rs]
all-features = true
rustc-args = ["--cfg", "docsrs"]
[lib]
name = "static_web_server"
@@ -252,10 +252,17 @@ crate-docs:
.PHONY: crate-docs
crate-docs-dev:
@cargo doc --no-deps
@env \
RUSTFLAGS="--cfg docsrs" \
RUSTDOCFLAGS="--cfg docsrs" \
cargo doc --lib --no-deps --all-features --document-private-items
@echo "Crate documentation: http://localhost:8787/static_web_server"
@static-web-server -p 8787 -d target/doc/ \
& watchman-make -p 'src/**/*.rs' --run 'cargo doc'
& watchman-make -p 'src/**/*.rs' --run '\
env \
RUSTFLAGS="--cfg docsrs" \
RUSTDOCFLAGS="--cfg docsrs" \
cargo doc --lib --no-deps --all-features --document-private-items'
.PHONY: crate-docs-dev
docs-deploy:
@@ -284,6 +291,10 @@ docs-deploy:
@git checkout master
.PHONY: docs-deploy
typos:
@typos . --config ./.github/workflows/config/typos.toml
.PHONY: typos
man:
@asciidoctor --doctype=manpage --backend=manpage docs/man/static-web-server.1.rst
.PHONY: man
@@ -28,7 +28,7 @@ However, you can disable just the ones you don't need from the lists below.
**Deafult** |
**Default** |
[**HTTP2/TLS**](./features/http2-tls.md) |
@@ -67,12 +67,32 @@
#![deny(missing_docs)]
#![forbid(unsafe_code)]
#![deny(warnings)]
#![deny(rust_2018_idioms)]
#![deny(dead_code)]
#![cfg_attr(docsrs, feature(doc_cfg))]
#[macro_use]
@@ -83,8 +103,10 @@ extern crate serde;
pub mod basic_auth;
#[cfg(feature = "compression")]
#[cfg_attr(docsrs, doc(cfg(feature = "compression")))]
pub mod compression;
#[cfg(feature = "compression")]
#[cfg_attr(docsrs, doc(cfg(feature = "compression")))]
pub mod compression_static;
pub mod control_headers;
pub mod cors;
@@ -105,6 +127,7 @@ pub mod settings;
pub mod signals;
pub mod static_files;
#[cfg(feature = "tls")]
#[cfg_attr(docsrs, doc(cfg(feature = "tls")))]
pub mod tls;
pub mod transport;
#[cfg(windows)]
@@ -113,6 +136,7 @@ pub mod winservice;
pub mod error;
#[doc(hidden)]
mod helpers;
@@ -144,20 +144,24 @@ pub struct General {
env = "SERVER_HTTP2_TLS"
)]
#[cfg(feature = "http2")]
#[cfg_attr(docsrs, doc(cfg(feature = "http2")))]
pub http2: bool,
#[structopt(long, required_if("http2", "true"), env = "SERVER_HTTP2_TLS_CERT")]
#[cfg(feature = "http2")]
#[cfg_attr(docsrs, doc(cfg(feature = "http2")))]
pub http2_tls_cert: Option<PathBuf>,
#[structopt(long, required_if("http2", "true"), env = "SERVER_HTTP2_TLS_KEY")]
#[cfg(feature = "http2")]
#[cfg_attr(docsrs, doc(cfg(feature = "http2")))]
pub http2_tls_key: Option<PathBuf>,
#[cfg(feature = "compression")]
#[cfg_attr(docsrs, doc(cfg(feature = "compression")))]
#[structopt(
long,
short = "x",
@@ -169,6 +173,7 @@ pub struct General {
pub compression: bool,
#[cfg(feature = "compression")]
#[cfg_attr(docsrs, doc(cfg(feature = "compression")))]
#[structopt(
long,
parse(try_from_str),
@@ -118,10 +118,12 @@ pub struct General {
#[cfg(feature = "compression")]
#[cfg_attr(docsrs, doc(cfg(feature = "compression")))]
pub compression: Option<bool>,
#[cfg(feature = "compression")]
#[cfg_attr(docsrs, doc(cfg(feature = "compression")))]
pub compression_static: Option<bool>,
@@ -13,7 +13,7 @@ use structopt::StructOpt;
use crate::{Context, Result};
mod cli;
pub mod cli;
pub mod file;
#[cfg(windows)]