// Copyright The libpkgmanifest Authors
// SPDX-License-Identifier: LGPL-2.1-or-later

#pragma once

#include "impl/common/yaml/iyamlparser.hpp"
#include "impl/manifest/objects/manifest/imanifestparser.hpp"
#include "iparser.hpp"

namespace libpkgmanifest::internal::manifest {

using namespace libpkgmanifest::internal::common;

class Parser : public IParser {
public:
    Parser(std::unique_ptr<IYamlParser> yaml_parser, std::unique_ptr<IManifestParser> manifest_parser);

    virtual std::unique_ptr<IManifest> parse(const std::string & path) const override;

private:
    std::unique_ptr<IYamlParser> yaml_parser;
    std::unique_ptr<IManifestParser> manifest_parser;
};

}  // namespace libpkgmanifest::internal::manifest
