From e86258da9ea9cd7383e50c61f6e2e09dab66ed3b Mon Sep 17 00:00:00 2001
From: "iliya.saroukha" <iliya.saroukha@hes-so.ch>
Date: Wed, 8 Feb 2023 20:11:02 +0100
Subject: [PATCH] created templates for header file as well as main

---
 src/c_templates.rs | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 src/c_templates.rs

diff --git a/src/c_templates.rs b/src/c_templates.rs
new file mode 100644
index 0000000..53e8ca1
--- /dev/null
+++ b/src/c_templates.rs
@@ -0,0 +1,41 @@
+use simplegen::CodeBuffer;
+
+pub fn template_for_header(filename: &str) -> CodeBuffer {
+    let mut buffer = CodeBuffer::new(4);
+
+    let mut mod_filename = filename.to_string();
+
+    // Removing trailing whitespace and extension from filename
+    for _ in 0..3 {
+        mod_filename.pop();
+    }
+
+    print!("{}", mod_filename);
+
+    buffer.println(format!("#ifndef _{}_H_", mod_filename.to_uppercase()).as_str());
+    buffer.println(format!("#define _{}_H_", mod_filename.to_uppercase()).as_str());
+    buffer.println("");
+    buffer.println(format!("typedef struct _{}_t", mod_filename.to_lowercase()).as_str());
+    buffer.println("{");
+    buffer.println("");
+    buffer.println(format!("}} {}_t;", mod_filename.to_lowercase()).as_str());
+    buffer.println("");
+    buffer.println("#endif");
+
+    return buffer;
+}
+
+pub fn template_for_main() -> CodeBuffer {
+    let mut buffer = CodeBuffer::new(4);
+
+    buffer.println("#include <stdio.h>");
+    buffer.println("#include <stdlib.h>");
+    buffer.println("");
+    buffer.println("int main()");
+    buffer.println("{");
+    buffer.println("");
+    buffer.println_right("return 0;");
+    buffer.println_left("}");
+
+    return buffer;
+}
-- 
GitLab