/** * Copyright (c) 2021 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #pragma once #include "../libs.h" #include "../util/array.h" #define SAVE_VALUES_MAX 200 typedef union { // char *s; bool b; uint8_t u8; int8_t i8; int16_t i16; int32_t i32; } savevalue_t; typedef struct { char *keys[SAVE_VALUES_MAX]; savevalue_t values[SAVE_VALUES_MAX]; uint8_t count; } savemanager_t; void saveManagerInit(savemanager_t *man); savevalue_t * saveManagerAddOrGet(savemanager_t *man, char *key); uint8_t saveManagerGetKey(savemanager_t *man, char *key); void saveManagerRemove(savemanager_t *man, char *key); savevalue_t * saveManagerSetBool(savemanager_t *man, char *key, bool val); savevalue_t * saveManagerSetUint8(savemanager_t *man, char *key, uint8_t val); bool saveManagerGetBool(savemanager_t *man, char *key); uint8_t saveManagerGetUint8(savemanager_t *man, char *key);