1use full_moon::LuaVersion;
2use serde::{Deserialize, Serialize};
3
4pub mod injector;
5pub mod manifest;
6pub mod modifiers;
7pub mod polyfill;
8pub mod transpile;
9pub mod utils;
10
11#[non_exhaustive]
13#[derive(Debug, Deserialize, Serialize, Clone, PartialEq)]
14#[serde(rename_all = "snake_case")]
15pub enum TargetVersion {
16 Lua51,
17 Lua52,
18 Lua53,
19 Luau,
20 Default,
21}
22
23impl Default for TargetVersion {
24 fn default() -> Self {
25 TargetVersion::Default
26 }
27}
28
29impl TargetVersion {
30 pub fn to_lua_version(&self) -> LuaVersion {
31 match &self {
32 TargetVersion::Lua51 => LuaVersion::lua51(),
33 TargetVersion::Lua52 => LuaVersion::lua52(),
34 TargetVersion::Lua53 => LuaVersion::lua53(),
35 TargetVersion::Luau => LuaVersion::luau(),
36 TargetVersion::Default => LuaVersion::default(),
37 }
38 }
39}