devalang_core/core/debugger/
logs.rs1use 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}