[wpimath] Add ReportWarning to MathShared (#3441)

This commit is contained in:
Noam Zaks
2021-06-16 10:52:24 +03:00
committed by GitHub
parent 362066a9b7
commit 9ce9188ff6
3 changed files with 23 additions and 0 deletions

View File

@@ -77,6 +77,11 @@ class WPILibMathShared : public wpi::math::MathShared {
args);
}
void ReportWarningV(fmt::string_view format, fmt::format_args args) override {
frc::ReportErrorV(warn::Warning, __FILE__, __LINE__, __FUNCTION__, format,
args);
}
void ReportUsage(wpi::math::MathUsageId id, int count) override {
switch (id) {
case wpi::math::MathUsageId::kKinematics_DifferentialDrive:

View File

@@ -12,6 +12,8 @@ namespace {
class DefaultMathShared : public MathShared {
public:
void ReportErrorV(fmt::string_view format, fmt::format_args args) override {}
void ReportWarningV(fmt::string_view format, fmt::format_args args) override {
}
void ReportUsage(MathUsageId id, int count) override {}
};
} // namespace

View File

@@ -25,12 +25,19 @@ class MathShared {
public:
virtual ~MathShared() = default;
virtual void ReportErrorV(fmt::string_view format, fmt::format_args args) = 0;
virtual void ReportWarningV(fmt::string_view format,
fmt::format_args args) = 0;
virtual void ReportUsage(MathUsageId id, int count) = 0;
template <typename S, typename... Args>
inline void ReportError(const S& format, Args&&... args) {
ReportErrorV(format, fmt::make_args_checked<Args...>(format, args...));
}
template <typename S, typename... Args>
inline void ReportWarning(const S& format, Args&&... args) {
ReportWarningV(format, fmt::make_args_checked<Args...>(format, args...));
}
};
class MathSharedStore {
@@ -48,6 +55,15 @@ class MathSharedStore {
ReportErrorV(format, fmt::make_args_checked<Args...>(format, args...));
}
static void ReportWarningV(fmt::string_view format, fmt::format_args args) {
GetMathShared().ReportWarningV(format, args);
}
template <typename S, typename... Args>
static inline void ReportWarning(const S& format, Args&&... args) {
ReportWarningV(format, fmt::make_args_checked<Args...>(format, args...));
}
static void ReportUsage(MathUsageId id, int count) {
GetMathShared().ReportUsage(id, count);
}