plugify 1.2.8
Loading...
Searching...
No Matches
enum_value.hpp
1#pragma once
2
3#include <cstdint>
4#include <memory>
5#include <string>
6
7#include "plugify/global.h"
8
9namespace plugify {
10 class Method;
11
12 // EnumValue Class
13 class PLUGIFY_API EnumValue {
14 public:
15 EnumValue();
16 ~EnumValue();
17 EnumValue(const EnumValue& other);
18 EnumValue(EnumValue&& other) noexcept;
19 EnumValue& operator=(const EnumValue& other);
20 EnumValue& operator=(EnumValue&& other) noexcept;
21
22 // Getters
23 [[nodiscard]] const std::string& GetName() const noexcept;
24 [[nodiscard]] int64_t GetValue() const noexcept;
25
26 // Setters (pass by value and move)
27 void SetName(std::string name);
28 void SetValue(int64_t value);
29
30 [[nodiscard]] bool operator==(const EnumValue& other) const noexcept;
31 [[nodiscard]] auto operator<=>(const EnumValue& other) const noexcept;
32
33 PLUGIFY_ACCESS : struct Impl;
34 PLUGIFY_NO_DLL_EXPORT_WARNING(std::unique_ptr<Impl> _impl;)
35 };
36}