devalang_core/core/debugger/
logs.rs

1use devalang_types::{FunctionTable, VariableTable};
2use std::fs::create_dir_all;
3
4pub fn write_module_variable_log_file(
5    output_dir: &str,
6    module_path: &str,
7    variable_table: &VariableTable,
8) {
9    let debugger = crate::core::debugger::Debugger::new();
10    let mut content = String::new();
11    let module_name = module_path
12        .split('/')
13        .next_back()
14        .unwrap_or("index")
15        .replace(".deva", "");
16
17    let log_directory = format!("{}/logs/modules/{}", output_dir, module_name);
18    create_dir_all(&log_directory).expect("Failed to create log directory");
19
20    for (var_name, var_data) in &variable_table.variables {
21        content.push_str(&format!("{:?} = {:?}\n", var_name, var_data));
22    }
23
24    content.push('\n');
25
26    debugger.write_log_file(&log_directory, "variables.log", &content);
27}
28
29pub fn write_module_function_log_file(
30    output_dir: &str,
31    module_path: &str,
32    function_table: &FunctionTable,
33) {
34    let debugger = crate::core::debugger::Debugger::new();
35    let mut content = String::new();
36    let module_name = module_path
37        .split('/')
38        .next_back()
39        .unwrap_or("index")
40        .replace(".deva", "");
41
42    let log_directory = format!("{}/logs/modules/{}", output_dir, module_name);
43    create_dir_all(&log_directory).expect("Failed to create log directory");
44
45    for (func_name, func_data) in &function_table.functions {
46        content.push_str(&format!("{:?} = {:?}\n", func_name, func_data));
47    }
48
49    content.push('\n');
50
51    debugger.write_log_file(&log_directory, "functions.log", &content);
52}