Skip to content
Snippets Groups Projects
Select Git revision
  • 53ee2838f63ecfa6d82004632454eb33104a90fc
  • main default protected
  • update_2024
  • fix_formatting
4 results

custom_int.rs

Blame
  • Forked from orestis.malaspin / rust-101
    Source project has a limited visibility.
    c_templates.rs 1.16 KiB
    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;
    }