1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
use std::ffi::CString; use utils::_string; use gdal_sys::gdal::GDALVersionInfo; pub fn version_info(key: &str) -> String { let c_key = CString::new(key.as_bytes()).unwrap(); return _string(unsafe { GDALVersionInfo(c_key.as_ptr()) }); } #[cfg(test)] mod tests { use super::version_info; #[test] fn test_version_info() { let release_date = version_info("RELEASE_DATE"); let release_name = version_info("RELEASE_NAME"); let version_text = version_info("--version"); let mut date_iter = release_date.chars(); let expected_text: String = format!( "GDAL {}, released {}/{}/{}", release_name, date_iter.by_ref().take(4).collect::<String>(), date_iter.by_ref().take(2).collect::<String>(), date_iter.by_ref().take(2).collect::<String>(), ); assert_eq!(version_text, expected_text); } }