mirror of
https://github.com/esphome/esphome.git
synced 2026-09-16 17:48:40 +00:00
9529adb0498325c54de41de050e5f8f2a01ef850
Eliminates virtual dispatch from ESPPreferenceBackend and ESPPreferences. Only one implementation of each exists per platform build, so the polymorphic design was unnecessary overhead — same pattern as OTA (#14473) and socket (#14398) devirtualizations. Each platform's backend class is now a standalone final class in its own header (preference_backend.h). The preferences manager class is extracted to the platform's preferences.h with a PreferencesMixin CRTP base for shared template helpers. core/preference_backend.h provides the PreferenceBackend alias, ESPPreferenceObject, and DECLARE_PREFERENCE_ALIASES macro. core/preferences.h is a thin wrapper including the active platform. ESPPreferenceBackend and ESPPreferences become backward-compatible type aliases to the concrete types. Zero caller changes required.
Description
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Readme
Multiple Licenses
614 MiB
Languages
C++
55.8%
Python
43.6%
C
0.3%
JavaScript
0.2%
