mirror of
https://github.com/esphome/esphome.git
synced 2025-11-05 01:21:50 +00:00
simplify
This commit is contained in:
@@ -9,6 +9,16 @@
|
|||||||
namespace esphome {
|
namespace esphome {
|
||||||
namespace climate {
|
namespace climate {
|
||||||
|
|
||||||
|
// Type aliases for climate enum bitmasks
|
||||||
|
// These replace std::set<EnumType> to eliminate red-black tree overhead
|
||||||
|
// For contiguous enums starting at 0, DefaultBitPolicy provides 1:1 mapping (enum value = bit position)
|
||||||
|
// Bitmask size is automatically calculated from the last enum value
|
||||||
|
using ClimateModeMask = FiniteSetMask<ClimateMode, DefaultBitPolicy<ClimateMode, CLIMATE_MODE_AUTO + 1>>;
|
||||||
|
using ClimateFanModeMask = FiniteSetMask<ClimateFanMode, DefaultBitPolicy<ClimateFanMode, CLIMATE_FAN_QUIET + 1>>;
|
||||||
|
using ClimateSwingModeMask =
|
||||||
|
FiniteSetMask<ClimateSwingMode, DefaultBitPolicy<ClimateSwingMode, CLIMATE_SWING_HORIZONTAL + 1>>;
|
||||||
|
using ClimatePresetMask = FiniteSetMask<ClimatePreset, DefaultBitPolicy<ClimatePreset, CLIMATE_PRESET_ACTIVITY + 1>>;
|
||||||
|
|
||||||
// Lightweight linear search for small vectors (1-20 items) of const char* pointers
|
// Lightweight linear search for small vectors (1-20 items) of const char* pointers
|
||||||
// Avoids std::find template overhead
|
// Avoids std::find template overhead
|
||||||
inline bool vector_contains(const std::vector<const char *> &vec, const char *value) {
|
inline bool vector_contains(const std::vector<const char *> &vec, const char *value) {
|
||||||
@@ -28,16 +38,6 @@ inline const char *vector_find(const std::vector<const char *> &vec, const char
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Type aliases for climate enum bitmasks
|
|
||||||
// These replace std::set<EnumType> to eliminate red-black tree overhead
|
|
||||||
// For contiguous enums starting at 0, DefaultBitPolicy provides 1:1 mapping (enum value = bit position)
|
|
||||||
// Bitmask size is automatically calculated from the last enum value
|
|
||||||
using ClimateModeMask = FiniteSetMask<ClimateMode, DefaultBitPolicy<ClimateMode, CLIMATE_MODE_AUTO + 1>>;
|
|
||||||
using ClimateFanModeMask = FiniteSetMask<ClimateFanMode, DefaultBitPolicy<ClimateFanMode, CLIMATE_FAN_QUIET + 1>>;
|
|
||||||
using ClimateSwingModeMask =
|
|
||||||
FiniteSetMask<ClimateSwingMode, DefaultBitPolicy<ClimateSwingMode, CLIMATE_SWING_HORIZONTAL + 1>>;
|
|
||||||
using ClimatePresetMask = FiniteSetMask<ClimatePreset, DefaultBitPolicy<ClimatePreset, CLIMATE_PRESET_ACTIVITY + 1>>;
|
|
||||||
|
|
||||||
/** This class contains all static data for climate devices.
|
/** This class contains all static data for climate devices.
|
||||||
*
|
*
|
||||||
* All climate devices must support these features:
|
* All climate devices must support these features:
|
||||||
|
|||||||
Reference in New Issue
Block a user