C++ / fmt (pull_request) Failing after 5s
C++ / build (pull_request) Failing after 10s
JS/TS / fmt (pull_request) Successful in 6s
C++ / clang-tidy (pull_request) Failing after 21s
JS/TS / lint (pull_request) Successful in 10s
Python / static (pull_request) Successful in 26s
Rust / build (pull_request) Successful in 47s
Rust / fmt (pull_request) Successful in 28s
Python / verify (pull_request) Successful in 1m39s
Rust / clippy (pull_request) Successful in 46s
34 lines
897 B
C++
34 lines
897 B
C++
#pragma once
|
|
|
|
#include <qhash.h>
|
|
#include <qjsonvalue.h>
|
|
#include <qtclasshelpermacros.h>
|
|
|
|
namespace ZShell::settings {
|
|
|
|
class Quarantine {
|
|
public:
|
|
explicit Quarantine() = default;
|
|
virtual ~Quarantine() = default;
|
|
|
|
virtual void insert(const QString& key, const QJsonValue& value) = 0;
|
|
[[nodiscard]] virtual bool remove(const QString& key) = 0;
|
|
[[nodiscard]] virtual bool isEmpty() const = 0;
|
|
[[nodiscard]] virtual QJsonValue apply(const QJsonValue& json) const = 0;
|
|
|
|
Q_DISABLE_COPY_MOVE(Quarantine)
|
|
};
|
|
|
|
class ObjectQuarantine : public Quarantine {
|
|
public:
|
|
void insert(const QString& key, const QJsonValue& value) override;
|
|
[[nodiscard]] bool remove(const QString& key) override;
|
|
[[nodiscard]] bool isEmpty() const override;
|
|
[[nodiscard]] QJsonValue apply(const QJsonValue& json) const override;
|
|
|
|
private:
|
|
QHash<QString, QJsonValue> m_quarantine;
|
|
};
|
|
|
|
} // namespace ZShell::settings
|