From dbc02fab2e54e9a6edbf0511946697ec878890e7 Mon Sep 17 00:00:00 2001 From: Leonetienne Date: Wed, 2 Jun 2021 22:12:34 +0200 Subject: [PATCH] Implemented a SetCrashOnFail(bool) method for Hazelnupp --- Hazelnupp.vpp | Bin 748544 -> 754688 bytes Hazelnupp/Hazelnupp.cpp | 29 +++++++++++++++++++++++++---- Hazelnupp/Hazelnupp.h | 10 ++++++++++ 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/Hazelnupp.vpp b/Hazelnupp.vpp index 80f2841e9cac280fb0db2ea645a706066dc8efa4..f9466945db97fa38c09ba9947f74146d9d505235 100644 GIT binary patch delta 30020 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 values, const Param return nullptr; } +bool Hazelnupp::GetCrashOnFail() const +{ + return crashOnFail; +} + void Hazelnupp::ApplyConstraints() { // Enforce required parameters / default values @@ -356,6 +371,12 @@ void Hazelnupp::ClearConstraints() return; } +void Hazelnupp::SetCrashOnFail(bool crashOnFail) +{ + this->crashOnFail = crashOnFail; + return; +} + const ParamConstraint* Hazelnupp::GetConstraintForKey(const std::string& key) const { const auto constraint = constraints.find(key); diff --git a/Hazelnupp/Hazelnupp.h b/Hazelnupp/Hazelnupp.h index 96e0e95..2e44b4d 100644 --- a/Hazelnupp/Hazelnupp.h +++ b/Hazelnupp/Hazelnupp.h @@ -43,6 +43,13 @@ public: //! Will delete all constraints void ClearConstraints(); + //! Sets whether to crash the application, and print to stderr, when an exception is + //! raised whilst parsing, or not. + void SetCrashOnFail(bool crashOnFail); + + //! Gets whether the application crashes on an exception whilst parsing, and prints to stderr. + bool GetCrashOnFail() const; + private: //! Will translate the c-like args to an std::vector void PopulateRawArgs(const int argc, const char* const* argv); @@ -72,4 +79,7 @@ private: std::unordered_map constraints; std::vector rawArgs; + + //! If set to true, Hazelnupp will crash the application with output to stderr when an exception is thrown whilst parsing. + bool crashOnFail = true; };