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