| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file LICENSE.rst or https://cmake.org/licensing for details. */
- #pragma once
- #include "cmConfigure.h" // IWYU pragma: keep
- #include <cstddef>
- #include <cstdint>
- #include <cm/string_view>
- #include <cmext/enum_set>
- namespace cm {
- namespace StdIo {
- class OStream;
- /**
- * Represent a text attribute.
- */
- enum class TermAttr : std::uint8_t
- {
- Normal,
- ForegroundBold,
- ForegroundBlack,
- ForegroundBlue,
- ForegroundCyan,
- ForegroundGreen,
- ForegroundMagenta,
- ForegroundRed,
- ForegroundWhite,
- ForegroundYellow,
- BackgroundBold,
- BackgroundBlack,
- BackgroundBlue,
- BackgroundCyan,
- BackgroundGreen,
- BackgroundMagenta,
- BackgroundRed,
- BackgroundWhite,
- BackgroundYellow,
- };
- static constexpr std::size_t kTermAttrCount = 19;
- /**
- * Represent a set of text attributes.
- */
- using TermAttrSet = cm::enum_set<TermAttr, kTermAttrCount>;
- /**
- * Print text to an output stream using a given set of color attributes.
- */
- void Print(OStream& os, TermAttrSet const& attrs, cm::string_view text);
- }
- }
|