This is an automated email from the ASF dual-hosted git repository. martinzink pushed a commit to branch minifi-api-property in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
commit cfacd92b01b6a9ac118c5c45a050f3eaea079cec Author: Martin Zink <[email protected]> AuthorDate: Fri Mar 14 10:18:30 2025 +0100 orThrow, orTerminate formatter --- utils/include/utils/Error.h | 10 ++++++++++ utils/include/utils/OptionalUtils.h | 4 +++- utils/include/utils/expected.h | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/utils/include/utils/Error.h b/utils/include/utils/Error.h index fc2139000..6d83e33d6 100644 --- a/utils/include/utils/Error.h +++ b/utils/include/utils/Error.h @@ -18,6 +18,16 @@ #pragma once #include <system_error> +#include "fmt/format.h" +#include "fmt/std.h" + +template <> +struct fmt::formatter<std::error_code> : fmt::formatter<std::string> { + auto format(const std::error_code& ec, fmt::format_context& ctx) const { + return fmt::formatter<std::string>::format( + fmt::format("{}: {} ({})", ec.category().name(), ec.message(), ec.value()), ctx); + } +}; namespace org::apache::nifi::minifi::utils { diff --git a/utils/include/utils/OptionalUtils.h b/utils/include/utils/OptionalUtils.h index 907990496..806a0eab7 100644 --- a/utils/include/utils/OptionalUtils.h +++ b/utils/include/utils/OptionalUtils.h @@ -28,6 +28,8 @@ #include "utils/gsl.h" #include "utils/detail/MonadicOperationWrappers.h" #include "fmt/format.h" +#include "utils/Error.h" // for more readable std::error_code fmt::formatter + namespace org::apache::nifi::minifi::utils { @@ -141,7 +143,7 @@ T&& operator|(std::optional<T> object, const or_throw_wrapper e) { if (object) { return std::move(*object); } - throw std::runtime_error(e.reason); + throw std::runtime_error(fmt::format("{}: {}", e.reason, object.error())); } template<typename T> diff --git a/utils/include/utils/expected.h b/utils/include/utils/expected.h index b2d44949d..b489212d6 100644 --- a/utils/include/utils/expected.h +++ b/utils/include/utils/expected.h @@ -23,6 +23,7 @@ #include "nonstd/expected.hpp" #include "utils/detail/MonadicOperationWrappers.h" #include "fmt/format.h" +#include "utils/Error.h" // for more readable std::error_code fmt::formatter namespace org::apache::nifi::minifi::utils { namespace detail {
