#pragma once #include #include #include // NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class IGenerationTracker { public: virtual ~IGenerationTracker() noexcept = default; [[nodiscard]] virtual auto get_current_generation() const noexcept -> std::uint32_t = 0; virtual void set_current_generation(std::uint32_t current_generation) noexcept = 0; [[nodiscard]] virtual auto get_is_paused() const noexcept -> bool = 0; virtual void set_is_paused(bool is_paused) noexcept = 0; }; using IGenerationTrackerFactory = yacppdic::Factory(bool is_paused)>;