From cb1f8ebcfe21cd967edfc7d6c91cc642d952c1e9 Mon Sep 17 00:00:00 2001 From: akagiyuu Date: Sat, 20 Dec 2025 16:54:23 +0700 Subject: [PATCH 1/4] feat: add language sturct definition --- src/language/cpp.rs | 6 ++++++ src/lib.rs | 1 + src/main.rs | 3 --- 3 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 src/language/cpp.rs create mode 100644 src/lib.rs delete mode 100644 src/main.rs diff --git a/src/language/cpp.rs b/src/language/cpp.rs new file mode 100644 index 0000000..595459d --- /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/lib.rs b/src/lib.rs new file mode 100644 index 0000000..39dba47 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1 @@ +pub mod language; 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!"); -} From 331899f54f59ce54099a0f64a014e8e34596c2d1 Mon Sep 17 00:00:00 2001 From: akagiyuu Date: Sat, 20 Dec 2025 16:59:52 +0700 Subject: [PATCH 2/4] feat: define commonly use language --- src/language/java.rs | 6 ++++++ src/language/javascript.rs | 6 ++++++ src/language/mod.rs | 18 ++++++++++++++++++ src/language/python.rs | 6 ++++++ src/language/rust.rs | 6 ++++++ src/language/typescript.rs | 6 ++++++ 6 files changed, 48 insertions(+) create mode 100644 src/language/java.rs create mode 100644 src/language/javascript.rs create mode 100644 src/language/mod.rs create mode 100644 src/language/python.rs create mode 100644 src/language/rust.rs create mode 100644 src/language/typescript.rs diff --git a/src/language/java.rs b/src/language/java.rs new file mode 100644 index 0000000..8f73391 --- /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..5398dbb --- /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..7beed3e --- /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..8362a3e --- /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..a9a13d2 --- /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"], +}; From fd160ca1662b50229c60fc7871d2bdbfa1c4c789 Mon Sep 17 00:00:00 2001 From: akagiyuu Date: Sat, 20 Dec 2025 17:25:28 +0700 Subject: [PATCH 3/4] fix: remove templating --- src/language/cpp.rs | 4 ++-- src/language/java.rs | 4 ++-- src/language/javascript.rs | 2 +- src/language/python.rs | 2 +- src/language/rust.rs | 2 +- src/language/typescript.rs | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/language/cpp.rs b/src/language/cpp.rs index 595459d..8f69b4e 100644 --- a/src/language/cpp.rs +++ b/src/language/cpp.rs @@ -1,6 +1,6 @@ use super::Language; pub const CPP: Language = Language { - compile_args: Some(&["g++", "-o", "{main}", "{main}.cpp"]), - run_args: &["./{main}"], + compile_args: Some(&["g++", "-o", "main", "main.cpp"]), + run_args: &["./main"], }; diff --git a/src/language/java.rs b/src/language/java.rs index 8f73391..215024b 100644 --- a/src/language/java.rs +++ b/src/language/java.rs @@ -1,6 +1,6 @@ use super::Language; pub const JAVA: Language = Language { - compile_args: Some(&["javac", "{main}.java"]), - run_args: &["java", "{main}"], + compile_args: Some(&["javac", "Main.java"]), + run_args: &["java", "Main"], }; diff --git a/src/language/javascript.rs b/src/language/javascript.rs index 5398dbb..995c3e4 100644 --- a/src/language/javascript.rs +++ b/src/language/javascript.rs @@ -2,5 +2,5 @@ use super::Language; pub const JAVASCRIPT: Language = Language { compile_args: None, - run_args: &["bun", "run", "{main}.js"], + run_args: &["bun", "run", "main.js"], }; diff --git a/src/language/python.rs b/src/language/python.rs index 7beed3e..9d9e181 100644 --- a/src/language/python.rs +++ b/src/language/python.rs @@ -2,5 +2,5 @@ use super::Language; pub const PYTHON: Language = Language { compile_args: None, - run_args: &["python", "{main}.py"], + run_args: &["python", "main.py"], }; diff --git a/src/language/rust.rs b/src/language/rust.rs index 8362a3e..32a20a6 100644 --- a/src/language/rust.rs +++ b/src/language/rust.rs @@ -1,6 +1,6 @@ use super::Language; pub const RUST: Language = Language { - compile_args: Some(&["rustc", "-O", "{main}.rs"]), + compile_args: Some(&["rustc", "-O", "main.rs"]), run_args: &["./main"], }; diff --git a/src/language/typescript.rs b/src/language/typescript.rs index a9a13d2..b2c1fbd 100644 --- a/src/language/typescript.rs +++ b/src/language/typescript.rs @@ -2,5 +2,5 @@ use super::Language; pub const TYPESCRIPT: Language = Language { compile_args: None, - run_args: &["bun", "run", "{main}.ts"], + run_args: &["bun", "run", "main.ts"], }; From 1ba7f57edb0b5ae13f6e3a73b6ec2be9875e7afd Mon Sep 17 00:00:00 2001 From: akagiyuu Date: Sat, 20 Dec 2025 17:30:52 +0700 Subject: [PATCH 4/4] fix: add placeholder test to prevent cd fail --- src/lib.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 39dba47..a81ac60 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1 +1,7 @@ pub mod language; + +#[cfg(test)] +mod test { + #[test] + fn base() {} +}