diff options
author | Rosyid Haryadi <rosyid_haryadi@protonmail.com> | 2025-03-15 17:01:27 +0700 |
---|---|---|
committer | Rosyid Haryadi <rosyid_haryadi@protonmail.com> | 2025-03-15 17:01:27 +0700 |
commit | ef420db3ab72b1a49a7706fdbabce1a179b41bf9 (patch) | |
tree | 3c894d7e5b9f6414d6404a91c237f08c76f577e3 /src/utilities.rs | |
parent | 3390e88aa0f1ec785b883663c2159ededab45c3c (diff) |
trying macro
Diffstat (limited to 'src/utilities.rs')
-rw-r--r-- | src/utilities.rs | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/src/utilities.rs b/src/utilities.rs index 54f1292..aa7a44e 100644 --- a/src/utilities.rs +++ b/src/utilities.rs @@ -2,7 +2,29 @@ use std::collections::HashMap; pub type ConfigHashMap = HashMap<String, HashMap<String, Option<String>>>; -pub fn die(message: &str) { - println!("{}", message); - std::process::exit(1); -}
\ No newline at end of file +#[macro_export] +macro_rules! die { + ($message:expr) => { + println!("{}", $message); + std::process::exit(1); + } +} + +#[macro_export] +macro_rules! create_path_or_die { + (dir: $path:expr, $message:expr) => { + if let Err(_) = std::fs::create_dir($path) { + die!($message); + } + }; + + (file: $path:expr, $content:expr, $message:expr) => { + if let Ok(mut file) = std::fs::File::create($path) { + if let Err(_) = file.write_all($content.as_ref()) { + die!($message); + } + } else { + die!($message); + } + }; +} |