/*
    SPDX-FileCopyrightText: 2026 ahouts

    SPDX-License-Identifier: GPL-2.0-or-later
*/

#pragma once

#include <QObject>
#include <QWebEngineUrlRequestInfo>
#include <optional>

#include <slugrewrite.rs.h>

class SlugRewriteEngine : public QObject
{
    Q_OBJECT
public:
    static SlugRewriteEngine *self();

    [[nodiscard]] bool interceptRequest(QWebEngineUrlRequestInfo &info);
    void reloadRules();

private:
    explicit SlugRewriteEngine(QObject *parent = nullptr);
    ~SlugRewriteEngine() override;

    std::optional<rust::Box<SlugRewriter>> mRewriter;
};