use anyhow::Result; use std::{fs, path::PathBuf}; mod cargo; pub(crate) fn read(fname: PathBuf) -> Result { let version = cargo::read() .unwrap() .unwrap_or(read_fs(fname)?); Ok(version) } fn read_fs(fname: PathBuf) -> Result { Ok(fs::read_to_string(fname)?.trim().into()) } #[cfg(test)] mod tests { #[test] fn read_version() { let version = super::read_fs("./testdata/VERSION".into()).unwrap(); assert_eq!(version, "0.1.0"); } }