include!(concat!(env!("OUT_DIR"), "/version.rs"));
#[cfg(unix)]
fn verbose_ver() -> String {
format!("\x1b[32;1mrl-sys {}\x1b[0m ({} {}) (built {})\ncommit-hash: {}\ncommit-date: \
{}\nbuild-date: {}\nhost: {}\nrelease: {}",
semver(),
short_sha(),
commit_date(),
short_now(),
sha(),
commit_date(),
short_now(),
target(),
semver())
}
#[cfg(windows)]
fn verbose_ver() -> String {
format!("rl-sys {} ({} {}) (built {})\ncommit-hash: {}\ncommit-date: {}\nbuild-date: \
{}\nhost: {}\nrelease: {}",
semver(),
short_sha(),
commit_date(),
short_now(),
sha(),
commit_date(),
short_now(),
target(),
semver())
}
#[cfg(unix)]
fn ver() -> String {
format!("\x1b[32;1mrl-sys {}\x1b[0m ({} {}) (built {})",
semver(),
short_sha(),
commit_date(),
short_now())
}
#[cfg(windows)]
fn ver() -> String {
format!("rl-sys {}[0m ({} {}) (built {})",
semver(),
short_sha(),
commit_date(),
short_now())
}
pub fn version(verbose: bool) -> String {
if verbose {
verbose_ver()
} else {
ver()
}
}
#[cfg(test)]
mod test {
#[cfg(all(unix,test))]
const TEST_VER: [u8; 13] = [27, 91, 51, 50, 59, 49, 109, 114, 108, 45, 115, 121, 115];
#[cfg(all(windows,test))]
const TEST_VER: [u8; 6] = [114, 108, 45, 115, 121, 115];
#[test]
#[cfg(unix)]
#[cfg_attr(feature="clippy", allow(indexing_slicing))]
fn test_version() {
use sodium_sys::crypto::utils::secmem;
use super::version;
let ver = version(false);
let vb = ver.as_bytes();
assert!(secmem::memcmp(&vb[..13], &TEST_VER) == 0);
let verbose_ver = version(true);
let verbose_vb = verbose_ver.as_bytes();
assert!(secmem::memcmp(&verbose_vb[..13], &TEST_VER) == 0);
}
#[test]
#[cfg(windows)]
#[cfg_attr(feature="clippy", allow(indexing_slicing))]
fn test_version() {
use sodium_sys::crypto::utils::secmem;
use super::version;
let ver = version(false);
let vb = ver.as_bytes();
assert!(secmem::memcmp(&vb[..6], &TEST_VER) == 0);
let verbose_ver = version(true);
let verbose_vb = verbose_ver.as_bytes();
assert!(secmem::memcmp(&verbose_vb[..6], &TEST_VER) == 0);
}
}