#pragma once #include #include #include namespace Roster { struct ParsedNames { QStringList names; QString error; bool ok() const { return error.isEmpty(); } }; ParsedNames parse(const QString &text); class Session { public: void setNames(const QStringList &names); void resetDraw(); const QStringList &names() const { return m_names; } int remainingCount() const { return static_cast(m_pool.size()); } QStringList draw(int count, QRandomGenerator &random); QList groups(int value, bool valueIsGroupCount, QRandomGenerator &random) const; private: QStringList m_names; QStringList m_pool; }; }