use serde_json::Value;
const DIR: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/../../tests/vectors/");
fn required() -> bool {
std::env::var("FPR_FF1_REQUIRE_FIXTURES").is_ok_and(|v| !v.is_empty() && v != "0")
}
pub(crate) fn load(name: &str) -> Option<Value> {
let path = format!("{DIR}{name}");
match std::fs::read_to_string(&path) {
Ok(text) => Some(serde_json::from_str(&text).expect("fixtures are valid JSON")),
Err(e) if required() => {
panic!("fixture {path} is required (FPR_FF1_REQUIRE_FIXTURES) and unreadable: {e}")
}
Err(_) => {
eprintln!(
"skipping: fixture {name} is not present (a packaged crate carries no fixtures); \
set FPR_FF1_REQUIRE_FIXTURES=1 to make this a failure"
);
None
}
}
}