diff --git a/src/language/cpp.rs b/src/language/cpp.rs new file mode 100644 index 0000000..8f69b4e --- /dev/null +++ b/src/language/cpp.rs @@ -0,0 +1,6 @@ +use super::Language; + +pub const CPP: Language = Language { + compile_args: Some(&["g++", "-o", "main", "main.cpp"]), + run_args: &["./main"], +}; diff --git a/src/language/java.rs b/src/language/java.rs new file mode 100644 index 0000000..215024b --- /dev/null +++ b/src/language/java.rs @@ -0,0 +1,6 @@ +use super::Language; + +pub const JAVA: Language = Language { + compile_args: Some(&["javac", "Main.java"]), + run_args: &["java", "Main"], +}; diff --git a/src/language/javascript.rs b/src/language/javascript.rs new file mode 100644 index 0000000..995c3e4 --- /dev/null +++ b/src/language/javascript.rs @@ -0,0 +1,6 @@ +use super::Language; + +pub const JAVASCRIPT: Language = Language { + compile_args: None, + run_args: &["bun", "run", "main.js"], +}; diff --git a/src/language/mod.rs b/src/language/mod.rs new file mode 100644 index 0000000..87f8adf --- /dev/null +++ b/src/language/mod.rs @@ -0,0 +1,18 @@ +mod cpp; +mod java; +mod javascript; +mod python; +mod rust; +mod typescript; + +pub use cpp::CPP; +pub use java::JAVA; +pub use javascript::JAVASCRIPT; +pub use python::PYTHON; +pub use rust::RUST; +pub use typescript::TYPESCRIPT; + +pub struct Language<'a> { + pub compile_args: Option<&'a [&'a str]>, + pub run_args: &'a [&'a str], +} diff --git a/src/language/python.rs b/src/language/python.rs new file mode 100644 index 0000000..9d9e181 --- /dev/null +++ b/src/language/python.rs @@ -0,0 +1,6 @@ +use super::Language; + +pub const PYTHON: Language = Language { + compile_args: None, + run_args: &["python", "main.py"], +}; diff --git a/src/language/rust.rs b/src/language/rust.rs new file mode 100644 index 0000000..32a20a6 --- /dev/null +++ b/src/language/rust.rs @@ -0,0 +1,6 @@ +use super::Language; + +pub const RUST: Language = Language { + compile_args: Some(&["rustc", "-O", "main.rs"]), + run_args: &["./main"], +}; diff --git a/src/language/typescript.rs b/src/language/typescript.rs new file mode 100644 index 0000000..b2c1fbd --- /dev/null +++ b/src/language/typescript.rs @@ -0,0 +1,6 @@ +use super::Language; + +pub const TYPESCRIPT: Language = Language { + compile_args: None, + run_args: &["bun", "run", "main.ts"], +}; diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..a81ac60 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,7 @@ +pub mod language; + +#[cfg(test)] +mod test { + #[test] + fn base() {} +} diff --git a/src/main.rs b/src/main.rs deleted file mode 100644 index e7a11a9..0000000 --- a/src/main.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - println!("Hello, world!"); -}