Skip to main content

luaur_require/functions/
validate_config.rs

1use crate::records::luarequire_configuration::luarequire_Configuration;
2use luaur_vm::macros::lua_l_error::luaL_error;
3use luaur_vm::records::lua_state::lua_State;
4
5pub fn validate_config(l: *mut lua_State, config: &luarequire_Configuration) {
6    if config.is_require_allowed.is_none() {
7        luaL_error!(
8            l,
9            "require configuration is missing required function pointer: is_require_allowed"
10        );
11        return;
12    }
13    if config.reset.is_none() {
14        luaL_error!(
15            l,
16            "require configuration is missing required function pointer: reset"
17        );
18        return;
19    }
20    if config.jump_to_alias.is_none() {
21        luaL_error!(
22            l,
23            "require configuration is missing required function pointer: jump_to_alias"
24        );
25        return;
26    }
27    if config.to_parent.is_none() {
28        luaL_error!(
29            l,
30            "require configuration is missing required function pointer: to_parent"
31        );
32        return;
33    }
34    if config.to_child.is_none() {
35        luaL_error!(
36            l,
37            "require configuration is missing required function pointer: to_child"
38        );
39        return;
40    }
41    if config.is_module_present.is_none() {
42        luaL_error!(
43            l,
44            "require configuration is missing required function pointer: is_module_present"
45        );
46        return;
47    }
48    if config.get_chunkname.is_none() {
49        luaL_error!(
50            l,
51            "require configuration is missing required function pointer: get_chunkname"
52        );
53        return;
54    }
55    if config.get_loadname.is_none() {
56        luaL_error!(
57            l,
58            "require configuration is missing required function pointer: get_loadname"
59        );
60        return;
61    }
62    if config.get_cache_key.is_none() {
63        luaL_error!(
64            l,
65            "require configuration is missing required function pointer: get_cache_key"
66        );
67        return;
68    }
69    if config.get_config_status.is_none() {
70        luaL_error!(
71            l,
72            "require configuration is missing required function pointer: get_config_status"
73        );
74        return;
75    }
76    if config.get_alias.is_some() && config.get_config.is_some() {
77        luaL_error!(
78            l,
79            "require configuration cannot define both get_alias and get_config"
80        );
81        return;
82    }
83    if config.get_alias.is_none() && config.get_config.is_none() {
84        luaL_error!(
85            l,
86            "require configuration is missing required function pointer: either get_alias or get_config (not both)"
87        );
88        return;
89    }
90    if config.load.is_none() {
91        luaL_error!(
92            l,
93            "require configuration is missing required function pointer: load"
94        );
95    }
96}