From c6cf8d9d810d85fdefb42f0a299521b5a60a3b04 Mon Sep 17 00:00:00 2001 From: "iliya.saroukha" <iliya.saroukha@hes-so.ch> Date: Thu, 9 Feb 2023 11:20:53 +0100 Subject: [PATCH] storing c templates into separate file; then importing into main --- src/code_templates/mod.rs | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/code_templates/mod.rs diff --git a/src/code_templates/mod.rs b/src/code_templates/mod.rs new file mode 100644 index 0000000..d53065c --- /dev/null +++ b/src/code_templates/mod.rs @@ -0,0 +1,39 @@ +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 extension from filename + for _ in 0..2 { + mod_filename.pop(); + } + + 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