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
//! Player identity.
//!
//! A [`Player`] is just a name (and in the future,
//! possibly a handicap or league ID). Per-game state (frames, scores) lives
//! in [`ScoreCard`](crate::scorecard::ScoreCard), and the association is
//! managed by the [`Game`](crate::game::Game).
use crateBowlingError;
/// A player's identity.
///
/// Construction validates that the name is non-empty, making it structurally
/// impossible to create a player with a blank name regardless of the
/// construction path.