use miette::{miette, Result}; pub fn parse_filter_program((n, prog): (usize, String)) -> Result { let parser = jaq_parse::main(); let (main, errs) = jaq_parse::parse(&prog, parser); if !errs.is_empty() { let errs = errs .into_iter() .map(|err| err.to_string()) .collect::>() .join("\n"); return Err(miette!("failed to load filter program #{}: {:?}", n, errs)); } main.ok_or_else(|| miette!("failed to load filter program #{} (no reason given)", n)) }