alef 0.75.0

Opinionated polyglot binding generator for Rust libraries
Documentation
use anyhow::Result;

pub(super) fn ensure_success(
    has_stale_bindings: bool,
    has_version_issues: bool,
    snippet_coverage_issue_count: usize,
    report_only: bool,
) -> Result<()> {
    if report_only || (!has_stale_bindings && !has_version_issues && snippet_coverage_issue_count == 0) {
        return Ok(());
    }
    anyhow::bail!("generated bindings, versions, or snippet coverage are out of date")
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn report_only_succeeds_with_multi_crate_coverage_issues() {
        ensure_success(false, false, 2, true).expect("report-only keeps a successful exit status");
    }

    #[test]
    fn coverage_issue_fails_with_honest_diagnostic() {
        let error = ensure_success(false, false, 1, false).expect_err("coverage issue must fail verification");
        assert!(error.to_string().contains("snippet coverage"));
    }
}