// Copyright 2018 Dolphin Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#include <optional>
#include <string>

namespace ResourcePack
{
class Manifest
{
public:
  explicit Manifest(const std::string& text);

  bool IsValid() const;
  bool IsCompressed() const;

  const std::string& GetName() const;
  const std::string& GetVersion() const;
  const std::string& GetID() const;
  const std::string& GetError() const;

  const std::optional<std::string>& GetAuthors() const;
  const std::optional<std::string>& GetDescription() const;
  const std::optional<std::string>& GetWebsite() const;

private:
  bool m_valid = true;
  bool m_compressed = false;

  std::string m_name;
  std::string m_version;
  std::string m_id;
  std::string m_error;

  std::optional<std::string> m_authors;
  std::optional<std::string> m_description;
  std::optional<std::string> m_website;
};
}  // namespace ResourcePack