#pragma once
#include <concepts>
#include <cstdint>
#include "Frame_Control_Strategy.hpp"
template <class That>
concept Frame_Refresh_Strategy = Frame_Control_Strategy<That> && requires(That& strategy, const That& const_strategy, double frequency_hz) {
    typename That::State;
    { strategy.set_frequency_hz(frequency_hz) } -> std::same_as<void>;
    { const_strategy.frequency_hz() } -> std::same_as<double>;
    { const_strategy.state() } -> std::same_as<typename That::State>;
    { const_strategy.next_refresh_interval_ns() } -> std::same_as<std::uint64_t>;
};
