1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
// Copyright (c) 2026 2youg1 and the sprawling contributors
//! The value a serve travels on: [`Serving`], everything one served
//! city is made of.
//!
//! Data only. Nothing here binds, spawns or writes; `assembly::listen`
//! consumes [`Serving`] and splits the writer thread's share of it off
//! as `assembly::attending::Opening`. Keeping the shape apart from the
//! code that acts on it is what lets one caller settle every field
//! before any thread exists.
//!
//! [`Serving`] is public, so every field of it is part of what an
//! embedder of this library writes, and a field added to it breaks them.
use SocketAddr;
use Payload;
/// Everything one served city is made of, in one value.
///
/// Eight loose parameters is a signature nobody calls correctly from
/// memory, and two `Option`s of the same shape passed the wrong way
/// round is a mistake the compiler cannot see. Named fields make the
/// call site say which is which.