use memstead_base::ops::coverage::{CoverageDisposition, SurfaceCoverage};
const READS_DATA: &str = "returns data, not a verdict; an empty result is an empty \
result, never an all-clear";
const MUTATION: &str = "mutation surface: reports what it did, never an all-clear \
over unexamined state";
pub const HEALTH: SurfaceCoverage = SurfaceCoverage {
surface: "memstead_health",
disposition: CoverageDisposition::Verdict(memstead_base::ops::coverage::HEALTH_COVERAGE),
};
const OVERVIEW: SurfaceCoverage = SurfaceCoverage {
surface: "memstead_overview",
disposition: CoverageDisposition::Verdict(memstead_base::ops::coverage::OVERVIEW_COVERAGE),
};
fn no_verdict(surface: &'static str, reason: &'static str) -> SurfaceCoverage {
SurfaceCoverage {
surface,
disposition: CoverageDisposition::NoVerdict(reason),
}
}
fn shared_rows() -> Vec<SurfaceCoverage> {
vec![
HEALTH,
OVERVIEW,
no_verdict("memstead_entity", READS_DATA),
no_verdict("memstead_search", READS_DATA),
no_verdict("memstead_schema", READS_DATA),
no_verdict("memstead_diff", READS_DATA),
no_verdict("memstead_changes_since", READS_DATA),
no_verdict("memstead_create", MUTATION),
no_verdict("memstead_update", MUTATION),
no_verdict("memstead_relate", MUTATION),
no_verdict("memstead_delete", MUTATION),
no_verdict("memstead_rename", MUTATION),
no_verdict(
"memstead_check",
"records the caller's verdict about the caller's own work into the \
append-only ledger; the engine derives no verdict of its own",
),
]
}
pub fn lean_registry() -> Vec<SurfaceCoverage> {
shared_rows()
}
#[cfg(feature = "mem-repo")]
pub fn full_registry() -> Vec<SurfaceCoverage> {
let mut rows = shared_rows();
rows.extend([
no_verdict("memstead_reload", MUTATION),
no_verdict("memstead_mem_configure", MUTATION),
no_verdict("memstead_mem_create", MUTATION),
no_verdict("memstead_mem_delete", MUTATION),
no_verdict("memstead_mem_set_schema", MUTATION),
no_verdict("memstead_mem_set_version", MUTATION),
]);
rows
}