#ifndef CHROME_BROWSER_BROWSER_SWITCHER_IEEM_SITELIST_PARSER_H_
#define CHROME_BROWSER_BROWSER_SWITCHER_IEEM_SITELIST_PARSER_H_
#include <optional>
#include <string>
#include <vector>
#include "base/functional/callback.h"
#include "chrome/browser/browser_switcher/browser_switcher_prefs.h"
namespace browser_switcher {
class ParsedXml {
public:
ParsedXml();
ParsedXml(ParsedXml&&);
ParsedXml(RawRuleSet&& rules, std::optional<std::string>&& error);
ParsedXml(std::vector<std::string>&& sitelist,
std::vector<std::string>&& greylist,
std::optional<std::string>&& error);
~ParsedXml();
ParsedXml(const ParsedXml&) = delete;
ParsedXml& operator=(const ParsedXml&) = delete;
ParsedXml& operator=(ParsedXml&&) = default;
RawRuleSet rules;
std::optional<std::string> error;
};
void ParseIeemXml(const std::string& xml,
ParsingMode parsing_mode,
base::OnceCallback<void(ParsedXml)>);
}
#endif