|
ESPHome 2025.12.0-dev
|
Optimized display writer that uses function pointers for stateless lambdas. More...
#include <display.h>
Public Member Functions | |
| DisplayWriter () | |
| template<typename F > requires std::invocable<F, T &> && std::convertible_to<F, void (*)(T &)> | |
| DisplayWriter (F f) | |
| template<typename F > requires std::invocable<F, T &> &&(!std::convertible_to<F, void (*)(T &)>) | |
| DisplayWriter (F f) | |
| DisplayWriter (const DisplayWriter &other) | |
| DisplayWriter (DisplayWriter &&other) noexcept | |
| DisplayWriter & | operator= (const DisplayWriter &other) |
| DisplayWriter & | operator= (DisplayWriter &&other) noexcept |
| ~DisplayWriter () | |
| bool | has_value () const |
| void | call (T &display) const |
| void | operator() (T &display) const |
| DisplayWriter & | operator* () |
| const DisplayWriter & | operator* () const |
Protected Types | |
| enum | : uint8_t { NONE , LAMBDA , STATELESS_LAMBDA } |
Protected Attributes | ||
| enum esphome::display::DisplayWriter:: { ... } | type_ | |
| union { | ||
| std::function< void(T &)> * f_ | ||
| void(* stateless_f_ )(T &) | ||
| }; | ||
Optimized display writer that uses function pointers for stateless lambdas.
Similar to TemplatableValue but specialized for display writer callbacks. Saves ~8 bytes per stateless lambda on 32-bit platforms (16 bytes std::function → ~8 bytes discriminator+pointer).
Supports both:
| T | The display type (e.g., Display, Nextion, GPIOLCDDisplay) |
|
protected |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinenoexcept |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinenoexcept |
| union { ... } esphome::display::DisplayWriter< T > |
| std::function<void(T &)>* esphome::display::DisplayWriter< T >::f_ |
| void(* esphome::display::DisplayWriter< T >::stateless_f_) (T &) |
| enum { ... } esphome::display::DisplayWriter< T >::type_ |