summaryrefslogtreecommitdiff
path: root/src/tangara/lua/lua_nvs.cpp
blob: e38e58d9176cfc7a5101e0f014680e469a3b44ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*
 * Copyright 2024 Clayton Craft <clayton@craftyguy.net>
 *
 * SPDX-License-Identifier: GPL-3.0-only
 */

#include "lua/lua_version.hpp"

#include "lua.hpp"
#include "lua/bridge.hpp"

#include "lua.h"
#include "lua/lua_thread.hpp"

namespace lua {

[[maybe_unused]] static constexpr char kTag[] = "lua_nvs";

static auto write(lua_State* L) -> int {
  Bridge* instance = Bridge::Get(L);
  instance->services().nvs().Write();

  return 1;
}

static const struct luaL_Reg kNvsFuncs[] = {{"write", write},
                                             {NULL, NULL}};

static auto lua_nvs(lua_State* L) -> int {
  luaL_newlib(L, kNvsFuncs);
  return 1;
}

auto RegisterNvsModule(lua_State* L) -> void {
  luaL_requiref(L, "nvs", lua_nvs, true);
  lua_pop(L, 1);
}

}  // namespace lua