pub(super) fn expecting_msg(noun: &str, kinds: &[&str]) -> String {
format!("a {noun} table with exactly one of: {}", kinds.join(", "))
}
pub(super) fn empty_table_msg(noun: &str, kinds: &[&str]) -> String {
format!(
"empty {noun} table; expected exactly one of: {}",
kinds.join(", ")
)
}
pub(super) fn unknown_kind_msg(noun: &str, key: &str, kinds: &[&str]) -> String {
format!(
"unknown {noun} kind '{key}', expected one of: {}",
kinds.join(", ")
)
}
pub(super) fn extra_key_msg(noun: &str, first: &str, extra: &str) -> String {
format!("{noun} must have exactly one kind, found '{first}' and '{extra}'")
}