blooemu 0.1.6

the best library for OS API's manipulation
pub mod macros;
pub mod popups;
pub mod utils;
mod process;

pub use popups::{alert_message, error_message};
pub use utils::{close, open};
pub use process::{get_process_name, get_pid};

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_error_message() {
        let message = "Test error message";
        error_message(message, "Test Error Title", None);
    }

    #[test]
    fn test_open() {
        let path = "C:/Users/Happy PC/Desktop/test.txt";
        open(path);
    }

    #[test]
    fn test_get_pid() {
        let task_name = "notepad";
        if let Some(pid) = get_pid(task_name) {
            println!("Found task {} with PID: {}", task_name, pid);
        } else {
            eprintln!("Task {} not found", task_name);
        }
    }

    #[test]
    fn test_alert_macro() {
        alert!(
            "Test with yes and no callbacks",
            "Custom Title",
            "yesno",
            || {
                error!("you choose yes");
            },
            || {
                error!("you choose no");
            }
        );
    }

    #[test]
    fn test_error_macro() {
        error!("Test error macro");
        error!("Test error with title", "Critical Error");
        error!("Test error with callback", "Critical Error", || {
            println!("Error callback executed");
        });
    }

    #[test]
    fn test_close() {
        if let Some(pid) = get_pid("notepad.exe") {
            println!("Found process ID: {}", pid);
            let namepid = get_process_name(pid);
            println!("{:?}", namepid);
        } else {
            println!("Process not found.");
        }
    }
}