13#elif defined(USE_ESP8266)
15#elif defined(USE_RP2040)
17#elif defined(USE_LIBRETINY)
19#elif defined(USE_HOST)
21#elif defined(USE_ZEPHYR) && defined(CONFIG_SETTINGS)
27#if !defined(USE_ESP32) && !defined(USE_ESP8266) && !defined(USE_RP2040) && !defined(USE_LIBRETINY) && \
28 !defined(USE_HOST) && !(defined(USE_ZEPHYR) && defined(CONFIG_SETTINGS))
31 bool save(
const uint8_t *,
size_t) {
return false; }
32 bool load(uint8_t *,
size_t) {
return false; }
43 template<
typename T>
bool save(
const T *src) {
46 return this->
backend_->
save(
reinterpret_cast<const uint8_t *
>(src),
sizeof(T));
49 template<
typename T>
bool load(T *dest) {
52 return this->
backend_->
load(
reinterpret_cast<uint8_t *
>(dest),
sizeof(T));
63 template<typename T, enable_if_t<is_trivially_copyable<T>::value,
bool> =
true>
68 template<typename T, enable_if_t<is_trivially_copyable<T>::value,
bool> =
true>
76#define DECLARE_PREFERENCE_ALIASES(platform_class) \
78 using Preferences = platform_class; \
79 using ESPPreferences = Preferences; \
80 extern ESPPreferences *global_preferences; \
PreferenceBackend * backend_
ESPPreferenceObject(PreferenceBackend *backend)
ESPPreferenceObject()=default
CRTP mixin providing type-safe template make_preference<T>() helpers.
ESPPreferenceObject make_preference(uint32_t type)
ESPPreferenceObject make_preference(uint32_t type, bool in_flash)
Providing packet encoding functions for exchanging data with a remote host.
esp32::ESP32PreferenceBackend PreferenceBackend
bool save(const uint8_t *, size_t)
bool load(uint8_t *, size_t)