sim_lib_lang_lua/
value.rs1use sim_kernel::Value;
2
3#[derive(Clone, Debug)]
5pub enum LuaResult {
6 Values(Vec<Value>),
8 Return(Vec<Value>),
10 Break,
12}
13
14impl LuaResult {
15 pub fn one(value: Value) -> Self {
17 Self::Values(vec![value])
18 }
19
20 pub fn values(values: Vec<Value>) -> Self {
22 Self::Values(values)
23 }
24
25 pub fn return_values(values: Vec<Value>) -> Self {
27 Self::Return(values)
28 }
29
30 pub fn break_signal() -> Self {
32 Self::Break
33 }
34
35 pub fn values_ref(&self) -> &[Value] {
37 match self {
38 Self::Values(values) | Self::Return(values) => values,
39 Self::Break => &[],
40 }
41 }
42
43 pub fn is_return(&self) -> bool {
45 matches!(self, Self::Return(_))
46 }
47
48 pub fn is_break(&self) -> bool {
50 matches!(self, Self::Break)
51 }
52
53 pub fn into_values(self) -> Vec<Value> {
55 match self {
56 Self::Values(values) | Self::Return(values) => values,
57 Self::Break => Vec::new(),
58 }
59 }
60}