kata_machine/languages/rust/
generation.rs

1pub fn generate_rust_calculator_files() -> (String, String) {
2    let program_file_content = r#"mod test;
3
4pub fn add_numbers(num1: &str, num2: &str) -> i32 {
5    // Implement the addition logic here
6    // ...
7}"#
8    .trim()
9    .to_string();
10
11    let test_file_content = r#"#[cfg(test)]
12mod tests {
13    use crate::add_numbers;
14
15    #[test]
16    fn test_add_numbers() {
17        assert_eq!(add_numbers("2", "3"), 5);
18        assert_eq!(add_numbers("-5", "10"), 5);
19        assert_eq!(add_numbers("0", "0"), 0);
20        // Add more test cases here
21    }
22}"#
23    .trim()
24    .to_string();
25
26    (program_file_content, test_file_content)
27}
28
29pub fn generate_rust_dsa_files() -> (String, String) {
30    let program_file_content = r#"
31        // TODO
32    "#
33    .to_string();
34
35    let test_file_content = r#"
36        // TODO
37    "#
38    .to_string();
39
40    (program_file_content, test_file_content)
41}
42
43pub fn generate_rust_cargo_file(day: &str) -> String {
44    format!(
45        r#"[package]
46name = "kata_machine_rust_calculator_{}"
47version = "0.1.0"
48edition = "2021"
49
50[dependencies]
51
52[lib]
53path = "lib.rs"
54"#,
55        day,
56    )
57}