Maki
Loading...
Searching...
No Matches
machine_ref_conf.hpp
1//Copyright Florian Goujeon 2021 - 2025.
2//Distributed under the Boost Software License, Version 1.0.
3//(See accompanying file LICENSE or copy at
4//https://www.boost.org/LICENSE_1_0.txt)
5//Official repository: https://github.com/fgoujeon/maki
6
11
12#ifndef MAKI_MACHINE_REF_CONF_HPP
13#define MAKI_MACHINE_REF_CONF_HPP
14
15#include "detail/type_list.hpp"
16
17namespace maki
18{
19
20#if MAKI_DETAIL_DOXYGEN
24template<IMPLEMENTATION_DETAIL>
25#else
26template<class EventTypeList = detail::type_list_t<>>
27#endif
28struct machine_ref_conf
29{
30 machine_ref_conf() = default;
31
32 machine_ref_conf(const machine_ref_conf&) = delete;
33
34 machine_ref_conf(machine_ref_conf&&) = delete;
35
36 ~machine_ref_conf() = default;
37
38 machine_ref_conf& operator=(const machine_ref_conf&) = delete;
39
40 machine_ref_conf& operator=(machine_ref_conf&&) = delete;
41
46 template<class... Events>
47 [[nodiscard]] constexpr auto events() const
48 {
49 return machine_ref_conf<detail::type_list_t<Events...>>{};
50 }
51
52#if MAKI_DETAIL_DOXYGEN
53private:
54#endif
55 using event_type_list = EventTypeList;
56};
57
58} //namespace
59
60#endif
The Maki library.
constexpr auto events() const
Sets the event types that can be passed to maki::machine_ref::process_event().
Definition machine_ref_conf.hpp:47