]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Give up about passing constexpr literal
authorVsevolod Stakhov <vsevolod@rspamd.com>
Sun, 19 Jun 2022 17:28:19 +0000 (18:28 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Sun, 19 Jun 2022 17:28:19 +0000 (18:28 +0100)
src/client/rspamc.cxx

index 29ebee04362f9c5c0b2b421effe9c25bbee31649..44dca077108064d7e9bbfff0067c583a818ca3b0 100644 (file)
@@ -346,12 +346,21 @@ struct rspamc_callback_data {
 };
 
 template<typename T>
-static constexpr auto emphasis_argument(const T &arg, const char *fmt_string = "{}") -> auto {
+static constexpr auto emphasis_argument(const T &arg) -> auto {
        if (tty) {
-               return fmt::format(fmt::emphasis::bold, fmt_string, arg);
+               return fmt::format(fmt::emphasis::bold, "{}", arg);
        }
 
-       return fmt::format(fmt_string, arg);
+       return fmt::format("{}", arg);
+}
+
+template<typename T, typename std::enable_if_t<std::is_floating_point_v<T>, bool> = false>
+static constexpr auto emphasis_argument(const T &arg, int precision) -> auto {
+       if (tty) {
+               return fmt::format(fmt::emphasis::bold, "{:.{}f}", arg, precision);
+       }
+
+       return fmt::format("{:.{}f}", arg, precision);
 }
 
 using sort_lambda = std::function<int(const ucl_object_t *, const ucl_object_t *)>;
@@ -916,8 +925,8 @@ rspamc_metric_output(FILE *out, const ucl_object_t *obj)
        if (got_scores == 2) {
                fmt::print(out,
                                "Score: {} / {}\n",
-                               emphasis_argument(score, "{:.2f}"),
-                               emphasis_argument(required_score, "{:.2f}"));
+                               emphasis_argument(score, 2),
+                               emphasis_argument(required_score, 2));
        }
 
        elt = ucl_object_lookup(obj, "symbols");
@@ -1259,7 +1268,7 @@ rspamc_stat_output(FILE *out, ucl_object_t *obj)
                        auto sum = rspamd_sum_floats(nums.data(), &cnt);
                        fmt::format_to(std::back_inserter(out_str),
                                                   "Average scan time: {} sec\n",
-                                                  emphasis_argument(sum / cnt, "{:.3f}"));
+                                                  emphasis_argument(sum / cnt, 3));
                }
        }