use super::{CheckFinding, finding, placeholder};
use crate::pipeline::PipelineNode;
pub(super) fn when_findings(node: &PipelineNode) -> Vec<CheckFinding> {
let Some(when) = &node.when else {
return Vec::new();
};
let op = when.op().err();
let placeholders = [&when.value, &when.expected]
.into_iter()
.flat_map(|text| placeholder::value_problems(&text.as_str().into()));
op.into_iter()
.chain(placeholders)
.map(|message| finding(node, Some("when"), message))
.collect()
}
pub(super) fn io_when_finding(node: &PipelineNode) -> Option<CheckFinding> {
let message = "\"when\" has no effect on an input or output node; \
guard the processing steps instead";
node.when
.as_ref()
.map(|_| finding(node, None, message.to_string()))
}