64 _rows.emplace_back(std::move(
label), std::move(value));
78 std::vector<std::pair<std::string, std::string>> _rows;
The roster: every connected player, and the signals for the connection lifecycle.
SummaryRows & AddIf(bool condition, std::string label, std::string value={})
SummaryRows & Add(std::string label, std::string value={})
std::vector< std::string > Take() &&
static std::string ReadFile(const std::filesystem::path &path)
std::shared_ptr< Menu > BuildDurationMenu(DurationMenu spec)
std::shared_ptr< Menu > BuildPlayerPicker(PlayerManager &players, PlayerPicker spec)
void AppendPlayerRows(MenuBuilder &builder, PlayerManager &players, const PlayerPicker &spec)
std::shared_ptr< Menu > BuildConfirmMenu(ConfirmMenu spec)
std::function< bool(PlayerRef target)> Enabled
std::function< void(PlayerRef target)> Pick
std::function< std::shared_ptr< Menu >(PlayerRef target)> Open
A storable reference to a player: the slot plus the SteamID that occupied it.