aboutsummaryrefslogtreecommitdiff
path: root/include/fmt/color.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/fmt/color.h')
-rw-r--r--include/fmt/color.h74
1 files changed, 42 insertions, 32 deletions
diff --git a/include/fmt/color.h b/include/fmt/color.h
index 57b7f578..367849a8 100644
--- a/include/fmt/color.h
+++ b/include/fmt/color.h
@@ -233,7 +233,7 @@ class text_style {
FMT_CONSTEXPR text_style(emphasis em = emphasis()) noexcept
: set_foreground_color(), set_background_color(), ems(em) {}
- FMT_CONSTEXPR text_style& operator|=(const text_style& rhs) {
+ FMT_CONSTEXPR auto operator|=(const text_style& rhs) -> text_style& {
if (!set_foreground_color) {
set_foreground_color = rhs.set_foreground_color;
foreground_color = rhs.foreground_color;
@@ -257,29 +257,29 @@ class text_style {
return *this;
}
- friend FMT_CONSTEXPR text_style operator|(text_style lhs,
- const text_style& rhs) {
+ friend FMT_CONSTEXPR auto operator|(text_style lhs, const text_style& rhs)
+ -> text_style {
return lhs |= rhs;
}
- FMT_CONSTEXPR bool has_foreground() const noexcept {
+ FMT_CONSTEXPR auto has_foreground() const noexcept -> bool {
return set_foreground_color;
}
- FMT_CONSTEXPR bool has_background() const noexcept {
+ FMT_CONSTEXPR auto has_background() const noexcept -> bool {
return set_background_color;
}
- FMT_CONSTEXPR bool has_emphasis() const noexcept {
+ FMT_CONSTEXPR auto has_emphasis() const noexcept -> bool {
return static_cast<uint8_t>(ems) != 0;
}
- FMT_CONSTEXPR detail::color_type get_foreground() const noexcept {
+ FMT_CONSTEXPR auto get_foreground() const noexcept -> detail::color_type {
FMT_ASSERT(has_foreground(), "no foreground specified for this style");
return foreground_color;
}
- FMT_CONSTEXPR detail::color_type get_background() const noexcept {
+ FMT_CONSTEXPR auto get_background() const noexcept -> detail::color_type {
FMT_ASSERT(has_background(), "no background specified for this style");
return background_color;
}
- FMT_CONSTEXPR emphasis get_emphasis() const noexcept {
+ FMT_CONSTEXPR auto get_emphasis() const noexcept -> emphasis {
FMT_ASSERT(has_emphasis(), "no emphasis specified for this style");
return ems;
}
@@ -297,9 +297,11 @@ class text_style {
}
}
- friend FMT_CONSTEXPR text_style fg(detail::color_type foreground) noexcept;
+ friend FMT_CONSTEXPR auto fg(detail::color_type foreground) noexcept
+ -> text_style;
- friend FMT_CONSTEXPR text_style bg(detail::color_type background) noexcept;
+ friend FMT_CONSTEXPR auto bg(detail::color_type background) noexcept
+ -> text_style;
detail::color_type foreground_color;
detail::color_type background_color;
@@ -309,16 +311,19 @@ class text_style {
};
/** Creates a text style from the foreground (text) color. */
-FMT_CONSTEXPR inline text_style fg(detail::color_type foreground) noexcept {
+FMT_CONSTEXPR inline auto fg(detail::color_type foreground) noexcept
+ -> text_style {
return text_style(true, foreground);
}
/** Creates a text style from the background color. */
-FMT_CONSTEXPR inline text_style bg(detail::color_type background) noexcept {
+FMT_CONSTEXPR inline auto bg(detail::color_type background) noexcept
+ -> text_style {
return text_style(false, background);
}
-FMT_CONSTEXPR inline text_style operator|(emphasis lhs, emphasis rhs) noexcept {
+FMT_CONSTEXPR inline auto operator|(emphasis lhs, emphasis rhs) noexcept
+ -> text_style {
return text_style(lhs) | rhs;
}
@@ -384,8 +389,8 @@ template <typename Char> struct ansi_color_escape {
}
FMT_CONSTEXPR operator const Char*() const noexcept { return buffer; }
- FMT_CONSTEXPR const Char* begin() const noexcept { return buffer; }
- FMT_CONSTEXPR_CHAR_TRAITS const Char* end() const noexcept {
+ FMT_CONSTEXPR auto begin() const noexcept -> const Char* { return buffer; }
+ FMT_CONSTEXPR_CHAR_TRAITS auto end() const noexcept -> const Char* {
return buffer + std::char_traits<Char>::length(buffer);
}
@@ -400,25 +405,27 @@ template <typename Char> struct ansi_color_escape {
out[2] = static_cast<Char>('0' + c % 10);
out[3] = static_cast<Char>(delimiter);
}
- static FMT_CONSTEXPR bool has_emphasis(emphasis em, emphasis mask) noexcept {
+ static FMT_CONSTEXPR auto has_emphasis(emphasis em, emphasis mask) noexcept
+ -> bool {
return static_cast<uint8_t>(em) & static_cast<uint8_t>(mask);
}
};
template <typename Char>
-FMT_CONSTEXPR ansi_color_escape<Char> make_foreground_color(
- detail::color_type foreground) noexcept {
+FMT_CONSTEXPR auto make_foreground_color(detail::color_type foreground) noexcept
+ -> ansi_color_escape<Char> {
return ansi_color_escape<Char>(foreground, "\x1b[38;2;");
}
template <typename Char>
-FMT_CONSTEXPR ansi_color_escape<Char> make_background_color(
- detail::color_type background) noexcept {
+FMT_CONSTEXPR auto make_background_color(detail::color_type background) noexcept
+ -> ansi_color_escape<Char> {
return ansi_color_escape<Char>(background, "\x1b[48;2;");
}
template <typename Char>
-FMT_CONSTEXPR ansi_color_escape<Char> make_emphasis(emphasis em) noexcept {
+FMT_CONSTEXPR auto make_emphasis(emphasis em) noexcept
+ -> ansi_color_escape<Char> {
return ansi_color_escape<Char>(em);
}
@@ -511,9 +518,10 @@ void print(const text_style& ts, const S& format_str, const Args&... args) {
}
template <typename S, typename Char = char_t<S>>
-inline std::basic_string<Char> vformat(
+inline auto vformat(
const text_style& ts, const S& format_str,
- basic_format_args<buffer_context<type_identity_t<Char>>> args) {
+ basic_format_args<buffer_context<type_identity_t<Char>>> args)
+ -> std::basic_string<Char> {
basic_memory_buffer<Char> buf;
detail::vformat_to(buf, ts, detail::to_string_view(format_str), args);
return fmt::to_string(buf);
@@ -532,8 +540,8 @@ inline std::basic_string<Char> vformat(
\endrst
*/
template <typename S, typename... Args, typename Char = char_t<S>>
-inline std::basic_string<Char> format(const text_style& ts, const S& format_str,
- const Args&... args) {
+inline auto format(const text_style& ts, const S& format_str,
+ const Args&... args) -> std::basic_string<Char> {
return fmt::vformat(ts, detail::to_string_view(format_str),
fmt::make_format_args<buffer_context<Char>>(args...));
}
@@ -543,9 +551,10 @@ inline std::basic_string<Char> format(const text_style& ts, const S& format_str,
*/
template <typename OutputIt, typename Char,
FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, Char>::value)>
-OutputIt vformat_to(
- OutputIt out, const text_style& ts, basic_string_view<Char> format_str,
- basic_format_args<buffer_context<type_identity_t<Char>>> args) {
+auto vformat_to(OutputIt out, const text_style& ts,
+ basic_string_view<Char> format_str,
+ basic_format_args<buffer_context<type_identity_t<Char>>> args)
+ -> OutputIt {
auto&& buf = detail::get_buffer<Char>(out);
detail::vformat_to(buf, ts, format_str, args);
return detail::get_iterator(buf, out);
@@ -563,9 +572,10 @@ OutputIt vformat_to(
fmt::emphasis::bold | fg(fmt::color::red), "{}", 42);
\endrst
*/
-template <typename OutputIt, typename S, typename... Args,
- bool enable = detail::is_output_iterator<OutputIt, char_t<S>>::value&&
- detail::is_string<S>::value>
+template <
+ typename OutputIt, typename S, typename... Args,
+ bool enable = detail::is_output_iterator<OutputIt, char_t<S>>::value &&
+ detail::is_string<S>::value>
inline auto format_to(OutputIt out, const text_style& ts, const S& format_str,
Args&&... args) ->
typename std::enable_if<enable, OutputIt>::type {