/// Check that all docs.rs links point to the current version /// /// Parse all docs.rs links in `*.rs` and `*.md` files and check that they point to the current version. /// If a link should point to latest version this can be done by using `latest` in the version. /// The `*` version specifier is not allowed. /// /// Arguably this should be part of version-sync. There is an open issue for this feature: /// <https://github.com/mgeisler/version-sync/issues/72> #[test] fn test_docs_rs_url_point_to_current_version() -> Result<(), Box<dyn std::error::Error>> { let pkg_name = env!("CARGO_PKG_NAME"); let pkg_version = env!("CARGO_PKG_VERSION");
let re = regex::Regex::new(&format!( "https?://docs.rs/{pkg_name}/((\\d[^/]+|\\*|latest))/"
))?; letmut error = false;
for entry in glob::glob("**/*.rs")?.chain(glob::glob("**/README.md")?) { let entry = entry?; let content = std::fs::read_to_string(&entry)?; for (line_number, line) in content.split('\n').enumerate() { for capture in re.captures_iter(line) { match capture
.get(1)
.expect("Will exist if regex matches")
.as_str()
{ "latest" => {}
version if version != pkg_version => {
error = true;
println!( "{}:{} pkg_version is {} but found URL {}",
entry.display(),
line_number + 1,
pkg_version,
capture.get(0).expect("Group 0 always exists").as_str()
);
}
_ => {}
}
}
}
}
if error {
panic!("Found wrong URLs in file(s)");
} else {
Ok(())
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet am 2026-10-01)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.