GCC Code Coverage Report


Directory: ./
File: firmware/controllers/generated/enums/rusefi_config_generated_enums.h
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 2 0 2
Functions: 100.0% 1 0 1
Branches: -% 0 0 0
Decisions: -% 0 - 0

Line Branch Decision Exec Source
1 // Not yet generated
2
3 #pragma once
4
5 #include <cstdint>
6 #include <cstring>
7 #include <type_traits>
8
9 namespace rusefi::generated::enums
10 {
11 template<typename T>
12 522954 constexpr auto Enum2Underlying(T const e) requires std::is_enum_v<T> {
13 522954 return static_cast<std::underlying_type_t<T>>(e);
14 }
15
16 template <typename T>
17 struct EnumStringPair {
18 T const enumValue;
19 char const* const name;
20 };
21
22 template <typename T>
23 constexpr EnumStringPair<T> EnumLookUp[]{};
24
25 template <typename T>
26 constexpr char const* Enum2String(T const e) {
27 for (auto& entry : EnumLookUp<T>) {
28 if (entry.enumValue == e) {
29 return entry.name;
30 }
31 }
32 return "UNSUPPORTED_ENUM_VALUE";
33 }
34
35 template <typename T>
36 constexpr T String2Enum(char const* const s) {
37 for (auto& entry : EnumLookUp<T>) {
38 if (std::strncmp(entry.name, s, std::strlen(entry.name) + 1) == 0) {
39 return entry.enumValue;
40 }
41 }
42 return T::UNSUPPORTED_ENUM_VALUE; // Invalid value (may need adjustment)
43 }
44
45 /* This enum is used to select your desired Engine Load calculation algorithm */
46 enum class engine_load_mode_e: uint8_t {
47 /* Speed Density algorithm - Engine Load is a function of MAP, VE and target AFR
48 * http://articles.sae.org/8539/ */
49 LM_SPEED_DENSITY = 0,
50 /* MAF with a known kg/hour function */
51 LM_REAL_MAF = 1,
52 LM_ALPHA_N = 2,
53 LM_LUA = 3,
54 UNSUPPORTED_ENUM_VALUE
55 };
56
57 template<>
58 inline constexpr EnumStringPair<engine_load_mode_e> EnumLookUp<engine_load_mode_e>[] = {
59 { engine_load_mode_e::LM_SPEED_DENSITY, "LM_SPEED_DENSITY" },
60 { engine_load_mode_e::LM_REAL_MAF, "LM_REAL_MAF" },
61 { engine_load_mode_e::LM_ALPHA_N, "LM_ALPHA_N" },
62 { engine_load_mode_e::LM_LUA, "LM_LUA" }
63 };
64 }
65