#pragma once

#include "types/duration_types.hpp"

#include <boost/asio/io_context.hpp>
#include <boost/asio/steady_timer.hpp>

#include <chrono>

namespace utils
{

template <class F>
void makeDetachedTimer(boost::asio::io_context& ioc, Milliseconds delay,
                       F&& fun)
{
    auto timer = std::make_unique<boost::asio::steady_timer>(ioc);
    timer->expires_after(delay);
    timer->async_wait([timer = std::move(timer),
                       fun = std::move(fun)](boost::system::error_code ec) {
        if (ec)
        {
            return;
        }
        fun();
    });
}

} // namespace utils
