#include "fesa/core/status.h" #include namespace fesa { Status Status::Ok() { return Status{true, std::nullopt, {}}; } Status Status::Failure(std::vector diagnostics) { SortDiagnostics(diagnostics); return Status{false, std::nullopt, std::move(diagnostics)}; } Status Status::Failure(FailureCategory category, std::vector diagnostics) { SortDiagnostics(diagnostics); return Status{false, category, std::move(diagnostics)}; } bool Status::IsOk() const noexcept { return is_ok_; } std::optional Status::Category() const noexcept { return category_; } const std::vector& Status::Diagnostics() const noexcept { return diagnostics_; } Status::Status(bool is_ok, std::optional category, std::vector diagnostics) : is_ok_{is_ok}, category_{category}, diagnostics_{std::move(diagnostics)} {} } // namespace fesa