#ifndef __JABYENGINE_IO_CLASS_HELPER_HPP__ #define __JABYENGINE_IO_CLASS_HELPER_HPP__ #include "bits.hpp" #define io_class__2option_map(option0, option1, bit_num) \ constexpr void set_##option0() { \ this->raw_value = bit::clear(this->raw_value, bit_num); \ } \ \ constexpr void set_##option1() { \ this->raw_value = bit::set(this->raw_value, bit_num); \ } #define io_class__2option_map_getter(type, option0, option1, name, bit_num) \ io_class__2option_map(option0, option1, bit_num) \ io_class__option_as(type, name, bit_num) #define io_class__option_as(type, name, bit_num) \ constexpr type get_##name() const { \ return static_cast(bit::is_set(this->raw_value, bit_num)); \ } #endif //!__JABYENGINE_IO_CLASS_HELPER_HPP__