Files
minstrel/internal/words/words.go
T
bvandeusenandClaude Opus 5.5 d191a28217 docs: server comments say what the code does, not how it came to be (#6277)
Comment blocks in cmd/minstrel and 30 smaller internal packages, rewritten
to rule 32's standard with each citation read in context: task, milestone
and rule ids go, and so do the stories they were attached to ("used to",
"Before #N", measurements from one install, quotes, pointers to Fabled
Librarian's records and to docs/superpowers files that are not in the
repo). Where a story wrapped a real constraint, the constraint stays as a
present-tense fact.

Comments that had gone stale are corrected:
- taste.Config: the tuned values are overlaid by internal/recsettings;
  it is no longer "a later follow-up".
- StorageConfig: the data dir holds art, caches and the stream secret,
  not only playlist covers.
- the Subsonic album list and getUser comments describe what they do
  today rather than a milestone that would change it.

Checked: the non-comment token stream of every changed file matches
HEAD, and gofmt -l is empty.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 12:15:05 -04:00

16 lines
550 B
Go

// Package words says counts in English for what the server writes to people:
// notifications, emails, the reasons a scan or a match gives.
package words
import "strconv"
// Count says n with the noun that agrees with it: "1 track", "3 tracks". The
// noun may carry its verb ("track went missing" / "tracks went missing").
// The web app's plural() is the same thing on the other side.
func Count[N ~int | ~int32 | ~int64](n N, one, many string) string {
if n == 1 {
return "1 " + one
}
return strconv.FormatInt(int64(n), 10) + " " + many
}