HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
log_level.hpp
1// Copyright Take Vos 2019-2021.
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
4
5#pragma once
6
7#include "assert.hpp"
8#include <atomic>
9#include <cstdint>
10#include <string_view>
11
12namespace tt {
13
14enum class log_level : uint8_t {
15 debug = 0x01,
16 info = 0x02,
17 statistics = 0x04,
18 trace = 0x08,
19 audit = 0x10,
20 warning = 0x20,
21 error = 0x40,
22 fatal = 0x80
23};
24
25[[nodiscard]] constexpr log_level operator&(log_level const &lhs, log_level const &rhs) noexcept
26{
27 return static_cast<log_level>(static_cast<uint8_t>(lhs) & static_cast<uint8_t>(rhs));
28}
29
30[[nodiscard]] constexpr log_level operator|(log_level const &lhs, log_level const &rhs) noexcept
31{
32 return static_cast<log_level>(static_cast<uint8_t>(lhs) | static_cast<uint8_t>(rhs));
33}
34
35constexpr log_level &operator|=(log_level &lhs, log_level const &rhs) noexcept
36{
37 lhs = lhs | rhs;
38 return lhs;
39}
40
43[[nodiscard]] log_level make_log_level(log_level user_level) noexcept;
44
45char const *to_const_string(log_level level) noexcept;
46
47int command_line_argument_to_log_level(std::string_view str);
48
49inline std::atomic<log_level> log_level_global = make_log_level(log_level::error);
50
51}
constexpr alignment operator|(vertical_alignment lhs, horizontal_alignment rhs) noexcept
Combine vertical and horizontal alignment.
Definition alignment.hpp:91