1use anyhow::Result;
2use semver::{Version, VersionReq};
3
4use crate::build_context::BuildContext;
5use anyhow::anyhow;
6
7pub fn verify(build_context: &BuildContext) -> Result<()> {
8 let workspace_version = build_context.dev_version()?;
9 let base_version = Version::new(
10 workspace_version.major,
11 workspace_version.minor,
12 workspace_version.patch,
13 );
14 let req = VersionReq::parse(&build_context.cargo_version.to_string()).unwrap();
15
16 if req.matches(&base_version) {
17 Ok(())
18 } else {
19 Err(anyhow!(
20 "Cargo version ${} does not match computed version {}!",
21 build_context.cargo_version,
22 build_context.dev_version()?
23 ))
24 }
25}