#pragma once
#include <liblangutil/Exceptions.h>
#include <functional>
#include <string>
namespace solidity::frontend
{
class ReadCallback
{
public:
ReadCallback(ReadCallback const&) = delete;
ReadCallback& operator=(ReadCallback const&) = delete;
struct Result
{
bool success;
std::string responseOrErrorMessage;
};
enum class Kind
{
ReadFile,
SMTQuery
};
static std::string kindString(Kind _kind)
{
switch (_kind)
{
case Kind::ReadFile:
return "source";
case Kind::SMTQuery:
return "smt-query";
default:
solAssert(false, "");
}
}
using Callback = std::function<Result(std::string const&, std::string const&)>;
};
}