#pragma once
#include <uriparser/Uri.h>
#include <memory>

/* Wrapper type for a C UriUriA. */
class Uri
{
    std::unique_ptr<UriUriA> _uri;

public:
    Uri();
    operator UriUriA *()
    {
        return _uri.get();
    };

    UriUriA *operator->()
    {
        return _uri.get();
    }

    Uri &operator=(Uri &&other);
    Uri(Uri &&other);

    ~Uri();
};