plugify 1.2.8
Loading...
Searching...
No Matches
conflict.hpp
1#pragma once
2
3#include <optional>
4#include <span>
5#include <string>
6#include <vector>
7
8#include "plugify/global.h"
9#include "plugify/types.hpp"
10
11namespace plugify {
12 class Manager;
13
14 // Conflict Class
15 class PLUGIFY_API Conflict {
16 public:
17 Conflict();
18 ~Conflict();
19 Conflict(const Conflict& other);
20 Conflict(Conflict&& other) noexcept;
21 Conflict& operator=(const Conflict& other);
22 Conflict& operator=(Conflict&& other) noexcept;
23
24 // Getters
25 [[nodiscard]] const std::string& GetName() const noexcept;
26 [[nodiscard]] const Constraint& GetConstraints() const noexcept;
27 [[nodiscard]] const std::string& GetReason() const noexcept;
28
29 // Setters (pass by value and move)
30 void SetName(std::string name);
31 void SetConstraints(Constraint constraints);
32 void SetReason(std::string reason);
33
34 [[nodiscard]] bool operator==(const Conflict& other) const noexcept;
35 [[nodiscard]] auto operator<=>(const Conflict& other) const noexcept;
36
37 PLUGIFY_ACCESS : struct Impl;
38 PLUGIFY_NO_DLL_EXPORT_WARNING(std::unique_ptr<Impl> _impl;)
39 };
40
41 using Obsolete = Conflict;
42}