1mod meta;
2mod node;
3mod stack;
4mod state;
5
6use crate::{api::LuaApi, value::value::LuaValue};
7pub use {stack::LuaStack, state::LuaState};
8
9impl LuaApi for LuaState {}
10
11impl LuaState {
13 pub(super) fn stack_get(&self, idx: isize) -> LuaValue {
14 let node = self.get_node();
15 let stack = node.get_stack();
16 stack.get(idx)
17 }
18
19 pub(super) fn stack_check(&self, n: usize) {
20 let node = self.get_node();
21 let mut stack = node.get_stack_mut();
22 stack.check(n)
23 }
24
25 pub(super) fn stack_push(&self, val: LuaValue) {
26 let node = self.get_node();
27 let mut stack = node.get_stack_mut();
28 stack.push(val)
29 }
30
31 pub(super) fn stack_push_n(&self, vals: Vec<LuaValue>, n: isize) {
32 let node = self.get_node();
33 let mut stack = node.get_stack_mut();
34 stack.push_n(vals, n)
35 }
36
37 pub(super) fn stack_pop(&self) -> LuaValue {
38 let node = self.get_node();
39 let mut stack = node.get_stack_mut();
40 stack.pop()
41 }
42
43 pub(super) fn stack_pop_n(&self, n: usize) -> Vec<LuaValue> {
44 let node = self.get_node();
45 let mut stack = node.get_stack_mut();
46 stack.pop_n(n)
47 }
48
49 pub(super) fn stack_abs_index(&self, idx: isize) -> isize {
50 let node = self.get_node();
51 let stack = node.get_stack();
52 stack.abs_index(idx)
53 }
54
55 pub(super) fn stack_is_valid(&self, idx: isize) -> bool {
56 let node = self.get_node();
57 let stack = node.get_stack();
58 stack.is_valid(idx)
59 }
60
61 pub(super) fn stack_set(&self, idx: isize, val: LuaValue) {
62 let node = self.get_node();
63 let mut stack = node.get_stack_mut();
64 stack.set(idx, val)
65 }
66
67 pub(super) fn stack_reverse(&self, from: isize, to: isize) {
68 let node = self.get_node();
69 let mut stack = node.get_stack_mut();
70 stack.reverse(from, to)
71 }
72}