#pragma once #include #include namespace Incart::Net::WebApi { enum class EJsonCommandStatus { OK, Error }; struct JsonCommandStatus { EJsonCommandStatus result; JsonCommandStatus(EJsonCommandStatus result_) : result(result_) { } virtual ~JsonCommandStatus() { } }; struct OkJsonCommandStatus final : public JsonCommandStatus { OkJsonCommandStatus() : JsonCommandStatus(EJsonCommandStatus::OK) { } }; struct ErrorJsonCommandStatus : public JsonCommandStatus { std::string errorText; ErrorJsonCommandStatus(const std::string& errorText_) : JsonCommandStatus(EJsonCommandStatus::Error) , errorText(errorText_) { } }; template struct ErrorJsonCommandStatusWithData final : public ErrorJsonCommandStatus { TData data; ErrorJsonCommandStatusWithData(const std::string& errorText_, TData data_) : ErrorJsonCommandStatus(errorText_) , data(data_) { } }; } // namespace Incart::Net::WebApi