pub fn check_removable_batch(
target_dir: &Path,
eco: &Ecosystem,
names: &[String],
) -> Vec<(String, NotRemovable)>Expand description
Every one of names that cannot be removed exactly, with the reason.
Separate from plan_uninstall_batch, which refuses outright, so a caller
can list every problem at once instead of discovering them one at a time. The
reason is a NotRemovable rather than an Error so a caller can word
each kind of refusal without re-deriving which kind it is.