12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #ifndef RTTR_ENUMERATION_WRAPPER_BASE_H_
- #define RTTR_ENUMERATION_WRAPPER_BASE_H_
- #include "rttr/detail/base/core_prerequisites.h"
- #include "rttr/detail/metadata/metadata_handler.h"
- #include "rttr/variant.h"
- #include "rttr/type.h"
- #include <string>
- #include <vector>
- #include <initializer_list>
- namespace rttr
- {
- class argument;
- namespace detail
- {
- class RTTR_API enumeration_wrapper_base
- {
- public:
- enumeration_wrapper_base() RTTR_NOEXCEPT;
- virtual ~enumeration_wrapper_base() RTTR_NOEXCEPT;
- type get_declaring_type() const RTTR_NOEXCEPT;
- virtual bool is_valid() const RTTR_NOEXCEPT;
- virtual type get_underlying_type() const RTTR_NOEXCEPT;
- virtual type get_type() const RTTR_NOEXCEPT;
- virtual array_range<string_view> get_names() const RTTR_NOEXCEPT;
- virtual array_range<variant> get_values() const RTTR_NOEXCEPT;
- virtual string_view value_to_name(argument& value) const;
- virtual variant name_to_value(string_view name) const;
- void set_declaring_type(type declaring_type) RTTR_NOEXCEPT;
- virtual variant get_metadata(const variant& key) const;
- private:
- type m_declaring_type;
- };
- }
- }
- #endif
|