#pragma once

#include "foundation/diagnostics/Metrics.h"

namespace ta::features::player
{
    struct PlayerDiagnosticsSnapshot final
    {
        ta::foundation::diagnostics::RequestConsumeSnapshot actions;
    };

    class PlayerDiagnostics final
    {
    public:
        void mark_action_requested() noexcept { actions_.mark_requested(); }
        void mark_action_consumed() noexcept { actions_.mark_consumed(); }
        void reset() noexcept { actions_.reset(); }
        [[nodiscard]] PlayerDiagnosticsSnapshot snapshot() const noexcept { return {actions_.snapshot()}; }

    private:
        ta::foundation::diagnostics::RequestConsumeMetrics actions_;
    };
}
