2021-07-20 15:07:55 +05:30
|
|
|
//------------------------------------------
|
|
|
|
|
|
|
|
#[macro_export]
|
|
|
|
macro_rules! path_to_cpp {
|
|
|
|
($name: literal) => {
|
|
|
|
concat!("bin/", $name)
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
#[macro_export]
|
|
|
|
macro_rules! path_to_rust {
|
|
|
|
($name: literal) => {
|
|
|
|
env!(concat!("CARGO_BIN_EXE_", $name))
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
#[cfg(not(feature = "rust_tests"))]
|
|
|
|
#[macro_export]
|
|
|
|
macro_rules! path_to {
|
|
|
|
($name: literal) => {
|
|
|
|
path_to_cpp!($name)
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
#[cfg(feature = "rust_tests")]
|
|
|
|
#[macro_export]
|
|
|
|
macro_rules! path_to {
|
|
|
|
($name: literal) => {
|
|
|
|
path_to_rust!($name)
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------
|
|
|
|
|
|
|
|
pub const CACHE_CHECK: &str = path_to!("cache_check");
|
|
|
|
pub const CACHE_DUMP: &str = path_to!("cache_dump");
|
|
|
|
|
|
|
|
pub const THIN_CHECK: &str = path_to!("thin_check");
|
|
|
|
pub const THIN_DELTA: &str = path_to_cpp!("thin_delta"); // TODO: rust version
|
|
|
|
pub const THIN_DUMP: &str = path_to!("thin_dump");
|
|
|
|
pub const THIN_METADATA_PACK: &str = path_to_rust!("thin_metadata_pack"); // rust-only
|
|
|
|
pub const THIN_METADATA_UNPACK: &str = path_to_rust!("thin_metadata_unpack"); // rust-only
|
2021-08-31 07:34:48 +05:30
|
|
|
pub const THIN_REPAIR: &str = path_to!("thin_repair");
|
2021-07-20 15:07:55 +05:30
|
|
|
pub const THIN_RESTORE: &str = path_to!("thin_restore");
|
|
|
|
pub const THIN_RMAP: &str = path_to_cpp!("thin_rmap"); // TODO: rust version
|
|
|
|
pub const THIN_GENERATE_METADATA: &str = path_to_cpp!("thin_generate_metadata"); // cpp-only
|
|
|
|
pub const THIN_GENERATE_MAPPINGS: &str = path_to_cpp!("thin_generate_mappings"); // cpp-only
|
|
|
|
pub const THIN_GENERATE_DAMAGE: &str = path_to_cpp!("thin_generate_damage"); // cpp-only
|
|
|
|
|
|
|
|
//------------------------------------------
|
|
|
|
|
|
|
|
pub mod cpp_msg {
|
|
|
|
pub const FILE_NOT_FOUND: &str = "No such file or directory";
|
|
|
|
pub const MISSING_INPUT_ARG: &str = "No input file provided";
|
|
|
|
pub const MISSING_OUTPUT_ARG: &str = "No output file provided";
|
|
|
|
pub const BAD_SUPERBLOCK: &str = "bad checksum in superblock";
|
|
|
|
|
|
|
|
pub fn bad_option_hint(option: &str) -> String {
|
|
|
|
format!("unrecognized option '{}'", option)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub mod rust_msg {
|
|
|
|
pub const FILE_NOT_FOUND: &str = "Couldn't find input file";
|
|
|
|
pub const MISSING_INPUT_ARG: &str = "The following required arguments were not provided"; // TODO: be specific
|
|
|
|
pub const MISSING_OUTPUT_ARG: &str = "The following required arguments were not provided"; // TODO: be specific
|
|
|
|
pub const BAD_SUPERBLOCK: &str = "bad checksum in superblock";
|
|
|
|
|
|
|
|
pub fn bad_option_hint(option: &str) -> String {
|
|
|
|
format!("Found argument '{}' which wasn't expected", option)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#[cfg(not(feature = "rust_tests"))]
|
|
|
|
pub use cpp_msg as msg;
|
|
|
|
#[cfg(feature = "rust_tests")]
|
|
|
|
pub use rust_msg as msg;
|
|
|
|
|
|
|
|
//------------------------------------------
|