git.delta.rocks / jrsonnet / refs/heads / trunk

difftreelog

source

crates/nix-eval/src/util.rs856 Bsourcehistory
1use std::time::Instant;23use anyhow::bail;4use tracing::{debug, warn};56use crate::{Value, nix_go_json};78#[tracing::instrument(level = "info", skip(val))]9pub fn assert_warn(action: &str, val: &Value) -> anyhow::Result<()> {10	let before_errors = Instant::now();11	let errors: Vec<String> = nix_go_json!(val.errors);12	debug!("errors evaluation took {:?}", before_errors.elapsed());13	if !errors.is_empty() {14		bail!(15			"failed with error{}{}",16			if errors.len() != 1 { "s:\n- " } else { ": " },17			errors.join("\n- "),18		);19	}2021	let before_errors = Instant::now();22	let warnings: Vec<String> = nix_go_json!(val.warnings);23	debug!("warnings evaluation took {:?}", before_errors.elapsed());24	if !warnings.is_empty() {25		warn!(26			"completed with warning{}{}",27			if warnings.len() != 1 { "s:\n- " } else { ": " },28			warnings.join("\n- "),29		);30	}31	Ok(())32}