#ifndef FMT_COLOR_H_
#define FMT_COLOR_H_

#include "format.h"

FMT_BEGIN_NAMESPACE
FMT_BEGIN_EXPORT

enum class color : uint32_t {
  alice_blue = 0xF0F8FF,
  antique_white = 0xFAEBD7,
  aqua = 0x00FFFF,
  aquamarine = 0x7FFFD4,
  azure = 0xF0FFFF,
  beige = 0xF5F5DC,
  bisque = 0xFFE4C4,
  black = 0x000000,
  blanched_almond = 0xFFEBCD,
  blue = 0x0000FF,
  blue_violet = 0x8A2BE2,
  brown = 0xA52A2A,
  burly_wood = 0xDEB887,
  cadet_blue = 0x5F9EA0,
  chartreuse = 0x7FFF00,
  chocolate = 0xD2691E,
  coral = 0xFF7F50,
  cornflower_blue = 0x6495ED,
  cornsilk = 0xFFF8DC,
  crimson = 0xDC143C,
  cyan = 0x00FFFF,
  dark_blue = 0x00008B,
  dark_cyan = 0x008B8B,
  dark_golden_rod = 0xB8860B,
  dark_gray = 0xA9A9A9,
  dark_green = 0x006400,
  dark_khaki = 0xBDB76B,
  dark_magenta = 0x8B008B,
  dark_olive_green = 0x556B2F,
  dark_orange = 0xFF8C00,
  dark_orchid = 0x9932CC,
  dark_red = 0x8B0000,
  dark_salmon = 0xE9967A,
  dark_sea_green = 0x8FBC8F,
  dark_slate_blue = 0x483D8B,
  dark_slate_gray = 0x2F4F4F,
  dark_turquoise = 0x00CED1,
  dark_violet = 0x9400D3,
  deep_pink = 0xFF1493,
  deep_sky_blue = 0x00BFFF,
  dim_gray = 0x696969,
  dodger_blue = 0x1E90FF,
  fire_brick = 0xB22222,
  floral_white = 0xFFFAF0

... [truncated 13820 chars] ...

d_color<Char>(ts.get_background());
      out = detail::copy<Char>(background.begin(), background.end(), out);
    }
    out = formatter<T, Char>::format(arg.value, ctx);
    if (has_style) {
      auto reset_color = string_view("\x1b[0m");
      out = detail::copy<Char>(reset_color.begin(), reset_color.end(), out);
    }
    return out;
  }
};

template <typename T>
FMT_CONSTEXPR auto styled(const T& value, text_style ts)
    -> detail::styled_arg<remove_cvref_t<T>> {
  return detail::styled_arg<remove_cvref_t<T>>{value, ts};
}

FMT_END_EXPORT
FMT_END_NAMESPACE

#endif