use std::collections::BTreeMap;
pub fn file(name: &str) -> &'static [u8] {
use std::sync::OnceLock;
static FILES: OnceLock<BTreeMap<&'static str, &'static [u8]>>
= OnceLock::new();
FILES.get_or_init(|| {
let mut m: BTreeMap<&'static str, &'static [u8]> =
Default::default();
macro_rules! add {
( $key: expr, $path: expr ) => {
m.insert($key, include_bytes!($path))
}
}
include!(concat!(env!("OUT_DIR"), "/tests.index.rs.inc"));
assert!(m.contains_key("sexp/rsa-signature.sexp"));
m
}).get(name).unwrap_or_else(|| panic!("No such file {:?}", name))
}
#[allow(dead_code)]
pub fn key(name: &str) -> &'static [u8] {
file(&format!("keys/{}", name))
}
pub fn keybox(name: &str) -> &'static [u8] {
file(&format!("keyboxes/{}", name))
}
#[allow(dead_code)]
pub fn message(name: &str) -> &'static [u8] {
file(&format!("messages/{}", name))
}