archive
/
md-pdf-rs
Archived
1
Fork 0
This repository has been archived on 2023-03-26. You can view files and clone it, but cannot push or open issues or pull requests.
md-pdf-rs/src/utils.rs

59 lines
1.4 KiB
Rust
Raw Permalink Normal View History

2017-07-26 15:22:20 +01:00
use std::fmt::Debug;
2017-09-06 18:20:45 +01:00
use std::process::exit;
use std::io::{self, Write};
2017-09-10 16:23:40 +01:00
use std::env::{current_exe, current_dir};
2017-11-21 22:12:46 +00:00
use std::path::{PathBuf, Path};
2017-09-13 13:37:35 +01:00
use mktemp::Temp;
2017-09-06 18:20:45 +01:00
2017-07-26 15:22:20 +01:00
2017-07-26 15:28:44 +01:00
#[inline]
2017-07-26 15:22:20 +01:00
pub fn result_override<T, E: Debug>(r: Result<T, E>, msg: String) -> Result<T, String> {
return match r {
Ok(t) => Ok(t),
2017-07-26 15:33:13 +01:00
Err(_) => Err(msg),
2017-07-26 15:22:20 +01:00
};
}
2017-07-26 15:28:44 +01:00
#[inline]
pub fn result_prefix<T, E: Debug>(r: Result<T, E>, prefix: String) -> Result<T, String> {
2017-07-26 15:22:20 +01:00
return match r {
Ok(t) => Ok(t),
2017-07-26 15:33:13 +01:00
Err(e) => Err(format!("{}: {:?}", prefix, e)),
2017-07-26 15:22:20 +01:00
};
}
2017-09-06 18:20:45 +01:00
pub fn ok_or_exit<T>(res: Result<T, String>) -> T {
return match res {
Ok(k) => k,
Err(err) => {
2017-09-10 16:24:26 +01:00
writeln!(io::stderr(), "Error: {}", err).unwrap();
2017-09-06 18:20:45 +01:00
exit(1);
}
};
}
2017-09-09 23:28:18 +01:00
#[inline]
pub fn get_exe_dir() -> PathBuf {
return current_exe()
.expect("Failed to get exe location")
.parent()
.expect("Failed to get exe directory")
.to_path_buf();
}
2017-09-10 16:23:40 +01:00
2017-11-21 22:12:46 +00:00
pub fn resolve_path<P: AsRef<Path>>(path: P) -> PathBuf {
2017-09-10 16:23:40 +01:00
let base_dir = current_dir().unwrap();
return base_dir.join(path);
}
2017-09-13 13:37:35 +01:00
pub fn get_temp_file() -> PathBuf {
return Temp::new_file().expect("Failed to create temporary file").to_path_buf();
}
2017-09-24 17:02:04 +01:00
#[inline]
pub fn path_to_string<'a>(path: &'a PathBuf) -> &'a str {
return path.to_str().expect("Failed to parse path to string");
}