25 enum class Kind : std::uint8_t {
35 enum class Level : std::uint8_t {
69 template<
typename Logger, tsm::log::Level Threshold = tsm::log::Level::Error>
79 if constexpr (enabled_for<tsm::log::Level::Debug>()) {
80 logger_.debug(kind, record);
85 if constexpr (enabled_for<tsm::log::Level::Info>()) {
86 logger_.info(kind, record);
91 if constexpr (enabled_for<tsm::log::Level::Warn>()) {
92 logger_.warn(kind, record);
97 if constexpr (enabled_for<tsm::log::Level::Error>()) {
98 logger_.error(kind, record);
103 template<tsm::log::Level Level>
104 static consteval
bool enabled_for() {
105 return static_cast<std::uint8_t
>(
Level) >=
106 static_cast<std::uint8_t
>(Threshold);
109 [[no_unique_address]] Logger logger_{};
constexpr hierarchy algorithms used by the HSM runtime.
constexpr std::uint16_t npos
Definition: core_algorithms.h:31
Kind
Definition: logging.h:25
Level
Definition: logging.h:35
std::chrono::duration< tick_rep, tick_period > tick_duration
Chrono duration type used for semantic scheduler ticks.
Definition: ticks.h:50
tsm::tick_duration tick
Definition: logging.h:43
std::uint16_t from
Definition: logging.h:46
std::uint16_t machine
Definition: logging.h:45
Kind kind
Definition: logging.h:44
std::uint16_t to
Definition: logging.h:48
std::uint16_t transition
Definition: logging.h:49
static constexpr auto threshold
Definition: logging.h:72
constexpr Logging()=default
constexpr void error(tsm::log::Kind kind, tsm::log::Record const &record)
Definition: logging.h:96
constexpr Logging(Logger logger)
Definition: logging.h:75
static constexpr bool enabled
Definition: logging.h:71
constexpr void warn(tsm::log::Kind kind, tsm::log::Record const &record)
Definition: logging.h:90
constexpr void debug(tsm::log::Kind kind, tsm::log::Record const &record)
Definition: logging.h:78
constexpr void info(tsm::log::Kind kind, tsm::log::Record const &record)
Definition: logging.h:84
static constexpr bool enabled
Definition: logging.h:61
Target-neutral tick value type.