Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 35 additions & 6 deletions src/failure/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,16 +43,45 @@
//!
//! # What is not here, said once so a green build is not read as covering it
//!
//! **No caller in this tree reaches any of it yet.** The transport is #27, the
//! query surface is #39 and the artwork fetch is #49, so what exists today is the
//! point and the suite that drives it. 0037 already says the honest proof that
//! **No request is made anywhere in this library, so nothing here has been built
//! out of an answer a server sent.** The transport is #27, the query surface is
//! #39 and the artwork fetch is #49, so every value built today is built from
//! something a module already decided. 0037 already says the honest proof that
//! every failure went through this point is a check over the tree rather than a
//! test, because a test proves the sites it reached.
//!
//! THIS SAID NO CALLER IN THIS TREE REACHED ANY OF IT YET, AND FOUR MODULES
//! REACHED IT OUTSIDE EVERY TEST MODULE. [`crate::lifecycle`] builds a
//! cancellation, [`crate::playback::handover`] builds 0111's refusal,
//! [`crate::server::destinations`] builds a refused redirect, and
//! [`crate::server::retry`] reads these variants to decide what a call does next;
//! every one of those lines is above its own file's `#[cfg(test)]`. The sentence
//! landed on 2026-08-28 and the first of the four on 2026-08-31, in a change that
//! had no reason to open this header, with three more by 2026-09-03. The three
//! issues named above were not what they came from: a module does not need a
//! transport to build a refusal out of what it has already decided. Which modules
//! reach this point is not carried here from now on, because a list goes stale on
//! the next landing and nothing in this tree reads one:
//!
//! ```text
//! git grep -n 'use crate::failure' -- 'src/**/*.rs'
//! ```
//!
//! That names every module importing these types, a test module's own import
//! included, so a reader who wants the library's own sites reads its line numbers
//! against each file's `#[cfg(test)]`. #447 is where it was found.
//!
//! **The retry-after hint 0004 describes as given or assumed is carried as given
//! or absent.** The assumed value is a delay 0038 decides and #38 is not built, so
//! no number is invented here, and a caller sees the absence rather than a
//! duration nothing chose.
//! or absent.** No number is invented here, and a caller sees the absence rather
//! than a duration nothing chose.
//!
//! THE REASON GIVEN FOR THAT WAS THAT #38 IS NOT BUILT, AND 0038'S POLICY IS IN
//! THE TREE. [`crate::server::retry`] holds the attempt ceiling, the interval the
//! first wait is drawn over and the deadline an attempt needs, and its own arm
//! draws an interval where no hint was given, from 2026-08-31. What holds is the
//! division of labour rather than an absence: the assumed value belongs to the
//! retry policy, which is where a caller that has to wait reads it, and this type
//! carries what the server said or nothing.
//!
//! **`answer-not-understood` carries where reading stopped as an offset and the
//! reading it stopped inside, and not which field.** 0037 asks for the field as
Expand Down
Loading