docs: missing_docs sweep — 0 warnings + deny gate + publish-prep decisions (HY-02, HY-04, HY-11)
- document every public-API item across 18 files (openapi_spec model, HttpAuthScheme/HttpServiceConfig, HttpClientBuildError + SharedHttpClient accessors, RetryAfterMiddleware, GatewayDispatch, gateway error mapping, CallRequest/SchemaQuery/SubscribeStream, HttpAdapter + ALPNs + builders, decoy/healthz/state, WsSessions/WsPumps, from_openapi/from_jsonschema/from_mcp/from_wss/to_mcp, lib.rs module docs) - enforcement: #![deny(missing_docs)] at crate root — stronger than CI rustdocflags (every build incl. cfg(test), where rustdoc misses the test-support module docs) - HY-10 (opportunistic): all 8 docs.rs/alkhttp placeholder ADR links + the one relative ../docs link converted to plain text; the 10 pre-existing private/redundant intra-doc-link warnings fixed — RUSTDOCFLAGS="-D warnings" cargo doc is fully clean - HY-11 decision: docs/ + tasks/ excluded from the published package (contributor-facing design/process material; ADR references degrade to plain text uniformly). cargo publish --dry-run: 38 files, ~889 KiB, zero docs/ or tasks/ entries - HY-04 decision: keep + document — frame_channel0_chunk's unwrap is on serializing the acyclic EventEnvelope (unreachable failure); # Panics on it and the adjacent WsClient senders state the contract Verified: cargo test (299 + 5 TLS), --all-features (370 + suites), --no-default-features (299), clippy --all-targets -D warnings (default + all-features), fmt --check, cargo doc -D warnings clean, cargo publish --dry-run --allow-dirty clean. Tasks: review-001-missing-docs-sweep (final pending task; 42/42)
This commit is contained in:
@@ -61,6 +61,10 @@ fn parse_retry_after_with_ceiling(value: &str, ceiling: Duration) -> Option<Syst
|
||||
Some(clamped)
|
||||
}
|
||||
|
||||
/// Per-URL `Retry-After` memory (FWD-05): records the backlog deadline
|
||||
/// an upstream declared and holds back subsequent requests to that URL
|
||||
/// until it elapses. LRU-bounded by capacity; deadlines clamped to the
|
||||
/// configured ceiling.
|
||||
pub struct RetryAfterMiddleware {
|
||||
deadlines: Mutex<HashMap<Url, SystemTime>>,
|
||||
capacity: usize,
|
||||
@@ -68,10 +72,22 @@ pub struct RetryAfterMiddleware {
|
||||
}
|
||||
|
||||
impl RetryAfterMiddleware {
|
||||
/// A middleware with the default 300 s `Retry-After` ceiling.
|
||||
///
|
||||
/// # Panics
|
||||
///
|
||||
/// Panics when `capacity` is 0 (a rate-limit memory that remembers
|
||||
/// nothing is a construction error, not a runtime fallback).
|
||||
pub fn with_capacity(capacity: usize) -> Self {
|
||||
Self::with_capacity_and_ceiling(capacity, Duration::from_secs(300))
|
||||
}
|
||||
|
||||
/// A middleware with an explicit `capacity` bound and a ceiling
|
||||
/// clamping hostile upstream deadlines.
|
||||
///
|
||||
/// # Panics
|
||||
///
|
||||
/// Panics when `capacity` is 0.
|
||||
pub fn with_capacity_and_ceiling(capacity: usize, ceiling: Duration) -> Self {
|
||||
Self {
|
||||
deadlines: Mutex::new(HashMap::with_capacity(capacity.min(128))),
|
||||
|
||||
Reference in New Issue
Block a user